2017-01-19 4 views
0

、私は(リンクセクションの最後の例)上記のリンクとまったく同じ例では、コールバック関数を呼び出すの2種類の方法に出くわした:nodejs:いつ `setImmediate(cb)`と `cb()`を使うべきですか? <a href="https://www.airpair.com/node.js/posts/top-10-mistakes-node-developers-make#4-the-christmas-tree-of-callbacks-callback-hell-" rel="nofollow noreferrer">The Callback Hell</a>に読み込む場合

cb(); 

、その後

setImmediate(cb); 

一見まったく同じことですどちらのバージョンを使うのですか?

答えて

0

setImmediateでは、イベントループの最後にコールバックの実行を予定しています。どういう意味ですか? Nodejsは、の前に他の関数呼び出しを処理します。

+0

"あなたのcbの前に他の関数呼び出しを処理する"とは、 'setImmediate(cb); a(); b(); c(); '、関数' a'、 'b'、' c'は 'cb'の前に実行されていますか? – Sebastian

+0

'a'、' b'、 'c'が非同期ならばyesです。 – pietrovismara

+1

'setImmediate(cb);'が呼び出されると、それは 'uv__loop'に入力されます。 'uv__loop'内のすべての関数呼び出しが実行されると、setImmediateでのコールバックの実行が再開されます。 uv__loopの優先順位は次のとおりです。1.通常のコールバック関数2. SetImmediate関数3.タイマー関数 –

関連する問題

 関連する問題