【发布时间】:2015-12-11 23:41:29
【问题描述】:
我必须实现这样的逻辑:
var express = require('express'),
request = require('request');
var array = [
{ url: 'http://www.example1.com' },
{ url: 'http://www.example2.com' },
];
express.Router().get('/job', function (req, res) {
results = [];
array.forEach(function (item) {
request(item.url, function (error, response, body) {
if (!error && response.statusCode == 200) {
results.push(body);
}
});
res.json(results); // <== wrong, results array is empty, here...
});
如何调用 res.json(results) 以确保 forEach 循环已结束?
更新:它不是建议答案的重复!
当所有请求完成时我需要 res.json(),而当 forEach 循环完成时 not... :-(
【问题讨论】:
-
forEach已完成。不是异步的request()函数。 -
查看我的更新... :-(
标签: javascript node.js asynchronous