本当に同期したいときに非同期関数を処理する方法


16

私はNodeJSが初めてであり、同期呼び出しで1つの呼び出しを他の呼び出しに追従させたいときに、関数の非同期性に頭を悩ませるのに苦労しています。

たとえば、Webサービスメソッドを呼び出しているとします。すべてのメソッドにはコールバック関数があります。しかし、特定の順序で10個を呼び出したい場合はどうすればよいでしょうか?最初のコールバックですべての関数を本当にチェーン/埋め込みする必要がありますか?チェーンが2回目にわずかに異なる場合はどうなりますか?

実際に同期したい状況に対処するエレガントなパターンはありますか?

それとも、この種のプログラミングを別の考え方に慣れさせるべきでしょうか?もしそれが本当なら、誰かがコールバックを使用した関数の長いチェーンのきれいな例を私に指摘するかもしれません...


10特定の順序で要求します。それらは互いに独立していますか?
ジョナス

1
注:チェーンにリンクされているということは、すべてがチェーンにリンクされていない限り、非同期ではないという意味ではありません。
エリックReppen

回答:


9

人々は通常、そのためにステップまたは非同期を使用します。それらをチェックしてください、それらについての素晴らしいチュートリアルがたくさんあります、あなたは彼らが「resqueに」来るのを見るでしょう:

http://dailyjs.com/2011/11/14/popular-control-flow/
http://dailyjs.com/2011/11/07/code-review/
http://howtonode.org/step-of-導体

また、次の2つの回答も確認してください。

/programming/6954588/what-is-the-best-control-flow-module-for-node-js
/programming/5265743/node-js-what-techniques -書き込み用のクリーンシンプルコールバックコード


お役に立てて嬉しいです!

1
あなたが提供してくれたこれらのリンクに感謝します!
ロニーベスト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.