【发布时间】:2016-05-22 00:43:39
【问题描述】:
我的输入是从另一个来源流式传输的,因此很难使用async.forEach。我正在从 API 端点提取数据,但我对端点的每个请求限制为 1000 个对象,并且我需要获取数十万个对象(基本上 所有 个),我会知道当响应包含
/* List all deposits */
var depositsAll = [];
var depositsIteration = [];
async.doWhilst(this._post(endpoint_path, function (err, response) {
// check err
/* Loop through the data and gather only the deposits */
for (var key in response) {
//do some stuff
}
depositsAll += depositsIteration;
return callback(null, depositsAll);
}, {limit: 1000, offset: 0, sort: 'desc'}),
response.length > 1000, function (err, depositsAll) {
// check for err
// return the complete result
return callback(null, depositsAll);
});
使用此代码,我收到 iterator is not a function 的异步内部错误。但总的来说,我几乎可以肯定逻辑也不正确。
如果不清楚我想要实现什么 - 我需要多次执行请求,并将响应数据添加到最后包含所有结果的结果中,以便我可以返回它。而且我需要执行请求,直到响应包含少于 1000 个对象。
我也查看了async.queue,但无法掌握它...
有什么想法吗?
【问题讨论】:
标签: node.js asynchronous callback