很抱歉,如果这个问题很简单,但我一直在使用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()。
如果每个条目都成功,我还需要告知。我应该使用全局变量来保存每个条目的结果吗?
答案 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)
有许多不同的库。我更喜欢q
和qq
期货库到async
,因为async
会导致复杂情景中的回调林。另一个图书馆是Step
。