2016-06-20 13 views
0

は、ノードとlodashを使用して上で実行して、次のコードを想像してみて:ループ宣言の後の関数呼び出しの後に、関数呼び出しをループ内で実行できますか?

var result = []; 

_.each(someArray, function (elem) { ... result.push(newElem); }); 
_.each(anotherArray, function (elem) { ... result.push(newElem); }); 

superfunction(result); 

はそのsuperfunction実行superfunctionは半分がいっぱいになるだろうというresult配列を意味し、それらの各()仕上げ、前に、いくつかの状況では、可能です?

+0

はい、絶対に。 result.push()は非同期メソッドのコールバックにある可能性があります。この場合、.push()呼び出しのいずれかが発生する前にスーパーファンクションが実行されます。 –

+0

しかし、それぞれが呼び出す関数で完全に同期しているコードの場合(たとえば、数学的な計算など)、ループが終了する前にスーパー関数を呼び出すことができますか? – Andre

+2

いいえ、同期していれば、現在の呼び出しスタックを離れることはないため、それぞれが完了するまでスーパーファンクションを実行することはできません。 –

答えて

0

resultを変更する文が、REST呼び出しの結果など、非同期に実行されている場合を除きます。

これ以外のロダッシュ関数は完全に同期しています。

関連する問題