在所有迭代完成之前调用了node.js async.each()回调

情约今生

有人可以解释一下我如何仅在所有迭代完成后才能进行回调吗?我为此使用了async.each函数:

async.each(products, function (product, callback) {
    fs.appendFile('ParseLog.txt', "PRODUCT name: " + product.name, function (err) {
        console.log("iterate");
        callback();
    });
}, function (err) {
    console.log("ALL FINISH");
});

所以我的输入看起来像:

ALL FINISH 
iterate 
iterate
iterate
...

但是我希望“ ALL FINISH”消息将在所有迭代之后打印。编辑1:对不起,但似乎麻烦在if(i > 10) return callback({ data: 'hi'}); // stop每个循环的开始。我只想在11次迭代后退出,但令我感到奇怪的是为什么它首先会回调。

 async.each(products, function (product, callback) {
    var i = products.indexOf(product);
    if(i > 10)  return callback({ data: 'hi'}); // stop
 fs.appendFile('ParseLog.txt', "PRODUCT name: " + product.name, function (err) {
            console.log("iterate");
            callback();
        });
..
罗伯特克莱普

在将产品传递之前,应限制要处理的产品数量async.each

async.each(products.slice(0, 11), function (product, callback) {
  fs.appendFile('ParseLog.txt', "PRODUCT name: " + product.name, function (err) {
    console.log("iterate");
    callback(err); // make sure to pass `err`!
  });
}, function(err) {
  if (err) console.log('ERROR', err);
  console.log("ALL FINISH");
});

同样,当您调用延续回调时,第一个参数为“保留”,表示发生了错误。在您的示例中,您正在使用它传递一个对象({ data: 'hi' }),该对象将使您async认为发生了错误(除非您打算这样做)。适当的成语是这样的:

callback(null, { data: 'hi' })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js async.each回调,如何知道它何时完成?

来自分类Dev

在调用迭代器之前,先调用async.each最终回调

来自分类Dev

Async.js-ETIMEDOUT和回调已被调用

来自分类Dev

借助async.each在foreach中调用同步函数(带有回调)

来自分类Dev

在async.each的帮助下在foreach中调用同步函数(带有回调)

来自分类Dev

如何使用 async.js 简化 Node.js 中的回调代码

来自分类Dev

如果所有任务都发生错误,async.parallel在所有任务完成后是否仍将调用最终回调?

来自分类Dev

async.each - 什么是回调?

来自分类Dev

在node.js中为async.series定义回调的位置

来自分类Dev

Javascript Async并行调用无关的回调

来自分类Dev

async.retry-回调已被调用

来自分类Dev

Javascript Async并行调用无关的回调

来自分类Dev

Node.js回调:返回所有回调后,调用grand_callback

来自分类Dev

async.series在完成当前操作之前执行回调

来自分类Dev

节点async.js:回调不是函数错误?

来自分类Dev

Node.js 中异步包的 .each() 方法中的回调函数

来自分类Dev

等到回调完成Node.js

来自分类Dev

Node.js-迭代运行带有回调的函数

来自分类Dev

如果循环包含带有回调的函数调用,如何验证for循环是否完成了节点js中的所有迭代?

来自分类Dev

async.each()最终回调未执行

来自分类Dev

多个dispatch_async()完成时进行回调

来自分类Dev

多个dispatch_async()完成时进行回调

来自分类Dev

Boost ASIO,未调用async_read_some回调

来自分类Dev

回调已在async.map中调用

来自分类Dev

JS中的迭代,JSON和回调

来自分类Dev

Rx.js等待回调完成

来自分类Dev

Rx.js等待回调完成

来自分类Dev

node.js回调函数dynamodb

来自分类Dev

node.js从回调发送响应

Related 相关文章

热门标签

归档