第8週async
2060 ワード
パラレルとシリアル(パラレル、waterfull)
async
は、非同期javascript操作に簡単で強力な機能を提供するユーティリティモジュールであり、javascript非同期論理をより簡単に記述できるライブラリです.並列実行
async.parallel(tasks, callback)
[ tasks ]
:実行する関数の集合.
配列、オブジェクト、またはイテレーションです.
[ Callback ]
:すべてのタスクの実行が完了した後にコールバックされ、すべてのタスクの結果が渡されます.
async.パラレル()->パラレル実行
前のタスクの完了を待たずに、複数のタスクを独立して実行します.
すなわちjavascriptでの基本的な動作のように、1つのコードが実行されると、次のコードは同じラインで実行されるのではなく、同じラインとは独立して複数のコードを同時に起動します.
これは、
callback
をパラメータとして、アレイ(タスク)で処理したい非同期タスクを宣言する最も一般的な並列処理方法です.最後に定義された
tasks
関数は、すべてのcallback
が完了するまで実行されません.同時に実行されるので、各
task
は独立して実行され、results
はすべての関数の結果を格納する. async.parallel([task1, task2, task3], function(err, results) {
// code.. parallel 완료 콜백
});
👉 非同期タスクを同時に実行した後、すべてのタスク(タスク)が終了した後に完了関数(コールバック)を実行します.tasks
の実行中にエラーが発生した場合、task
の実行を停止し、callback
関数が直ちに呼び出され、パラメータにエラー内容が埋め込まれ、渡されます.最後のcallback
関数はnull
であり、通常はすべてのtasks
が正常に呼び出され、null
でなければ、tasks
の実行中にエラーが検出されてエラー処理が行われる.いずれかの関数がコールバックにエラーを渡した場合(コールバックの最初のパラメータがnullではない場合)、デフォルトのコールバックがエラー値として呼び出されます.しかし、すべての機能が実行されます.
エラーが関数のコールバックに渡されると、すぐにデフォルトのコールバックが呼び出され、エラーが表示されます.パラレルはI/Oタスクのパラレル起動ですが、Javascriptは単一スレッドであるため、パラレル実行ではありません.
出典:https://bcho.tistory.com/1083[曹大侠ブログ]
waterfall
今回知るべき方法は
waterfall
です.名前で推測したように、定義されたタスクの結果は次のタスクに渡され、順番に処理されます.次の例は、add 10を順次実行して10を加算するコードである.
Reference
この問題について(第8週async), 我々は、より多くの情報をここで見つけました https://velog.io/@serenity/비동기-함수-병렬과-직렬parallel-waterfullテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol