Node.js:检测请求的所有事件何时完成

时间:2011-11-19 22:07:38

标签: node.js

很抱歉,如果这个问题很简单,但我一直在使用node.js几天。

基本上我收到一些带有一些条目的json。我循环这些条目并为每个条目启动一个http请求。像这样:

for (var i in entries) {
    // Lots of stuff

    http.get(options, function(res) {
        // Parse reponse and detect if it was successfully
    });
}

如何检测所有请求何时完成?我需要这个来调用response.end()。

如果每个条目都成功,我还需要告知。我应该使用全局变量来保存每个条目的结果吗?

2 个答案:

答案 0 :(得分:5)

你可以,例如使用caolans "async"库:

async.map(entries, function(entry, cb) {
  http.get(options, function(res) {
    // call cb here, first argument is the error or null, second one is the result
  })
}, function(err, res) {
  // this gets called when all requests are complete
  // res is an array with the results
}

答案 1 :(得分:0)

有许多不同的库。我更喜欢qqq期货库到async,因为async会导致复杂情景中的回调林。另一个图书馆是Step