Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 已调用nodejs async.forEach回调_Node.js_Asynchronous_Node Async - Fatal编程技术网

Node.js 已调用nodejs async.forEach回调

Node.js 已调用nodejs async.forEach回调,node.js,asynchronous,node-async,Node.js,Asynchronous,Node Async,我正在使用异步库来帮助我处理控制流。我有一个要迭代的集合,对于每个元素,执行一个异步任务,完成所有任务后,调用回调 我决定使用async.forEach循环,在每个循环上我调用我的异步任务,但我得到一个错误:已经调用了回调,但回调不应该只在调用所有回调时调用吗?我甚至想正确地理解如何处理错误,有些任务很可能会失败,有些任务会成功,我不需要知道哪些元素会失败,但我想,我该怎么做 这是我的代码: async.forEach(fonts, function(font, callback) {

我正在使用异步库来帮助我处理控制流。我有一个要迭代的集合,对于每个元素,执行一个异步任务,完成所有任务后,调用回调

我决定使用async.forEach循环,在每个循环上我调用我的异步任务,但我得到一个错误:已经调用了回调,但回调不应该只在调用所有回调时调用吗?我甚至想正确地理解如何处理错误,有些任务很可能会失败,有些任务会成功,我不需要知道哪些元素会失败,但我想,我该怎么做

这是我的代码:

async.forEach(fonts, function(font, callback) {
    ftpm_module.installOsFont(font, callback);
}, function() {
    console.log("finished");
});

编辑:仅当我传递了2种或更多字体时,才会发生错误。

能否显示ftpm_模块的详细信息。installOsFont?这里的给定回调似乎被调用了两次。回调必须在迭代结束时运行。这就是您的ftpm_模块。installOsFont必须包含回调;最后,而且只有一次@alandrev ftpm_module.installOsFont是异步的,我尝试了放置回调;在函数之后,但是。但是calblack会在installOsFont完成执行之前被调用。我的印象是问题出在ftpm_模块中:它不会传递回调,而是将回调保存为模块范围的变量,因此在第二次和后续调用中,回调会被覆盖,第一次调用不会调用第一次回调,我在中快速查看了一下,如果在查找字体时出现错误,它将发出两次错误:一次输入和一次输入。