所以我完全难过,希望有人可以帮助Node JS Async和Request模块的组合。我正在尝试构建一个要下载的文件列表,我将其传递给Async,因为一个对象数组包含我需要下载和存储所述文件的所有信息。经过大量的调试后,我发现Request甚至没有解决问题,我无法弄清楚原因。
async.each(missingFiles,
function (obj, cb) {
console.log(obj.url);
//var file = nfs.createWriteStream(obj.fullPath);
request(obj.url, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(response)
}
cb();
})
},
function (err) {
if (err) {
console.log("Async failed");
}
}
);
答案 0 :(得分:0)
之前我遇到过类似的问题。如果在异步块之外发送响应,http请求/响应周期将在异步任务完成之前结束。修复是在done()回调中发送响应。
app.post("/download", function(req, res) {
async.eachSeries(missingFiles, function (obj, cb) {
...
//do your work here
cb()
}, function done() {
res.json({success: true});
});
}