ライブラリを使用しasync
て、制御フローを支援しています。繰り返したいコレクションがあり、要素ごとに1つの非同期タスクを実行し、すべてが完了したらコールバックを呼び出します。
ループを使用することにしましasync.forEach
た。各ループで非同期タスクを呼び出しますが、エラーが発生します: callback was already called
、しかし、すべてのコールバックが呼び出されたときにのみコールバックを呼び出すべきではありませんか? また、エラーを処理する方法を適切に理解したいとさえ思っていました。あるタスクが失敗し、他のタスクが成功する可能性が非常に高いです。どの要素が失敗するかを知る必要はありませんが、どうすればこれを行うことができますか?
これは私のコードです:
async.forEach(fonts, function(font, callback) {
ftpm_module.installOsFont(font, callback);
}, function() {
console.log("finished");
});
編集: 2 つ以上のフォントを渡した場合にのみエラーが発生します。