ホームページ >ウェブフロントエンド >jsチュートリアル >Nodejs async を非同期にするにはどのような関数が必要ですか?
今回は、nodejs async 非同期にどのような関数が必要か、nodejs async 非同期 関数を使用する際の 注意事項 についてお届けします。以下は実際的なケースです。見てみましょう。
nodejsフレームワーククラスライブラリはたくさんあります。「プロセス制御」は元々比較的単純なものですが、nodejsの非同期アーキテクチャの実装には、同期が必要なビジネスロジックを実装する方が面倒です。
非同期のコレクション コントロール:async.map(arr, function(item, callback){},callback(err, results){});async.mapSeries
app.get('/testMap',function(req, res){ var arr = [0,1,2,3,4,5,6]; async.mapSeries(arr,function(item, callback){ (function(){ callback(null, item+1); }()); },function(err, results){ console.log(results);//[1,2,3,4,5,6,7]; }); });results.length は arr.length に等しい;
配列 arr 内の各項目に対して非同期の function 関数 を実行し、結果を取得します。すべての結果は最終コールバックに要約されます;
非同期プロセス制御: async.series(tasks,callback); 複数の関数が相互にデータ交換せずに順次実行されますリーリー
シリアル実行。関数配列内の各関数が実行された後、次の関数が実行されます。callback(err, results) はエラー メッセージ を返します。result は複数の関数によって返された結果セットです。
いずれかの関数がそのコールバック関数にエラーを渡した場合、後続の関数は実行されず、エラーと実行された関数の結果は直ちに一連のコールバック関数
の最後の関数に渡されます。 async.Parallel(task,callback); 複数の関数が並行して実行されます;app.get('/testParallel',function(req, res){
app.get('/testSeries',function(req, res){ async.series([ function(callback){ callback(null,'function1'); },function(callback){ callback(null, 'function2') },function(callback){ callback(null, 'function3'); }],function(err, results){ console.log(results);//['function1','function2','function3']; }); });タスク: functionList; コールバック:関数(エラー、結果){} task.length と results.length は等しいです
複数の関数を並行して実行します。各関数は待機せずにすぐに実行されます。最後のコールバック配列に渡されるデータは、実行が完了した順序ではなく、タスクで宣言された順序で実行されます。 関数内でエラーが発生した場合、err と実行された関数の結果値が直ちにParallelの最終コールバックに渡されます。他の未実行関数の値は最終データには転送されませんが、場所を占めます
async.whilst(test, function, callback); は非同期で呼び出すために使用できます
tasks: functionList;
callback: function(err, result){}
この記事の事例を読んだ後は、メソッドを習得したと思います。さらに興味深い情報については、他の関連記事に注目してください。 PHP中国語ウェブサイトで!
推奨読書:
Vue.js での v-on イベントの使用の詳細な説明ライブビデオプッシュのための ffmpeg に基づく nodejs以上がNodejs async を非同期にするにはどのような関数が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。