私はノードjs非同期モジュールを使用しています。私はたくさんの並列関数を実行したいと思います。いずれかの関数がエラーを返す場合、私はメインコールバックをすぐに実行したくありません。どの場合でもメインのコールバックが最後に実行されるようにしたいのですが、エラーを返した配列の配列だけでなく、OKになった配列を取得したいと思います。ロジックを追加しなくても可能ですか?ノードjs async - メインコールバックの即時実行を防ぎます
0
A
答えて
0
その関数のコールバックでエラーを返す代わりに、エラー配列にエラーをプッシュし、ok項目をok配列にプッシュして、すべてのコールバックを第1引数(callback(null))としてコールします機能。このような何か:あなたは並列呼び出しに成功/失敗した機能の両方のためのちょうど1アレイを有する気にしない場合は
var okArray = [];
var errorArray = [];
async.parallel([
function(callback) {
// do something
if (error) {
errorArray.push(errorItem);
} else {
okArray.push(okItem);
}
callback(null);
},
function(callback) {
// do something
if (error) {
errorArray.push(errorItem);
} else {
okArray.push(okItem);
}
callback(null);
}
], function(err) {
console.log(okArray);
console.log(errorArray);
});
、平行配列にリストされているために、機能ごとに結果の配列を返すん。たとえば、
async.parallel([
function(callback) {
// do something
if (error) {
return callback(null, errorItem);
}
callback(null, okItem);
},
function(callback) {
// do something
if (error) {
return callback(null, errorItem);
}
callback(null, okItem);
}
], function(err, results) {
console.log(results); // results[0] = what 1st function returns
// results[1] = what 2nd function returns
});
0
Javascript Promiseオブジェクトを調べてみてください。
すべての並列関数が約束オブジェクトを返すようにして、それらをすべて配列に貼り付けます。 次に、Promise.all([約束])を実行します(コールバック)。 関数が例外をスローしない限り、そのコールバックはすべての関数が実行された後にのみ呼び出されることを保証することができます。
関連する問題
- 1. PL/SQL DDL即時実行
- 2. PLSQL - 即時実行でFORALL
- 3. Oracle 11gで即時実行
- 4. Java PL/SQL '即時実行'
- 5. DDL文で即時実行
- 6. 繰延LINQ(?または即時)実行
- 7. Java synchronizedキーワード - クラスメソッドが同時に実行されるのを防ぎますか?
- 8. synchronizedは(a)同期メソッドの同時実行を防ぎますか?
- 9. JSの即時検証
- 10. PostScriptの即時実行または遅延実行
- 11. ノードJSでマルチプロセスを実行
- 12. ノードjsでプロセスを実行
- 13. ノードjsセイルアプリケーションの実行時間プロファイルを取得する方法
- 14. ノードjs、関数の実行
- 15. 即時ループPL/SQLを実行
- 16. ライブコンパイルes5へのTypescriptと即時実行
- 17. 複数のSQL文で即時実行
- 18. Androidスタジオ2.2即時実行エラーのグラデーションプラグ
- 19. ノードjs asyncを同期に変換
- 20. ノードJS(Meteor JS)でJavaクラスを実行
- 21. 切断時にスクリプトを実行する方法(ノードjs)
- 22. 防ぎアンカー行動
- 23. マルチスレッドのない同時実行Async/Await
- 24. ノードjsリンクコマンド実行エラー
- 25. 即時送信ボタンのクリックを防止しますか?
- 26. エラーの取得ORA-00933即時実行の実行
- 27. ノードJS早すぎるプログラムの終了
- 28. マウスクリック時の入力ボケを防ぎます
- 29. ノードjsでasync awaitを使用していますか?
- 30. 「IDの即時実行」の実行時に、スプリングがロールバックされない
ありがとうございますが、私は非同期に固執したいと思います。 –