【发布时间】:2015-05-15 19:13:09
【问题描述】:
我遇到了另一堵砖墙,我无法完全掌握在这里做什么,或者至少不知道如何以正确的方式去做。我已经实现了一个异步调用,因此我可以在瀑布方法中运行多个请求,并且每个请求都依赖于另一个请求的结果。这很好,问题是,瀑布的第三步实际上需要发出多个请求。
我现在的情况如下:
async.waterfall([
function(callback) {
Object.find().exec(function (err, records) {
callback(null, records);
});
},
function(arg1, callback) {
request('url' + arg1.property + '', function(err, resp, body) {
callback(null, arg1, JSON.parse(body));
});
},
function(arg1, arg2, callback) {
var array = {newarray:[]};
arg2.forEach(function(eachField){
request('url' + arg2.property, function(err, resp, body) {
array.newarray.push(JSON.parse(body));
});
});
// AT THIS POINT THIS ARRAY SHOWS AS EMPTY
console.log(array);
callback(null, arg1, arg2, array);
}
], function (err, result) {
// RESULT BREAKS DUE TO FORMAT OF DIFFERENT RESPONSES
console.log(result);
});
这是一种工作。它发出第一个请求,将数据发送到瀑布中的第二个函数,发出 10 个进一步的请求,等等。
首先,我推动所有内容的数组在“请求”调用之外显示为空,其次,每个请求返回的数据格式不同 - 我可以整理第二部分,但基本上我需要要了解如何提出请求,请在该请求的后面再提出 10 个(小而诚实的!)请求并将这些请求构建到一个对象中。
最后,我基本上想得到类似的结果:
{ 响应1:数据集, 响应2:数据集, 响应3:数据集 }
将来,我可能想添加或更改其中的一些,所以任何帮助都会非常有帮助!!!我要做的就是发出一些请求,用他们的 JSON 响应构建一个对象,所以在我看来,我可以用大量数据做我想做的事!
谢谢
【问题讨论】:
标签: node.js asynchronous express request npm