コールバック関数が使用されているノード内のほとんどすべての場所は非同期です。コールバック関数の背後にあるコードは、コールバック関数、特にデータベース操作のコードよりも最初に実行される可能性があります。もちろん、ノードは、ファイル操作などの同期バージョンの関数も提供します。 fs.readfilesync()は、fs.readfile()の同期バージョンです。
問題は、foreach()非同期ですか?論理的に言えば、同期が追加されていない場合、非同期である必要があります。
コードコピーは次のとおりです。
var arr = ['a'、 'b'、 'c'];
var str = '123';
arr.foreach(function(item){
str += item;
while(true){}; //死んだループを使用してそれを詰めました~~
});
console.log(str);
上記のコードを実行すると、出力なしで行き詰まってしまいます。 。
したがって、ノードのforeach()は同期されます! !
私が最初にノードを使用したとき、私はこの問題を考慮しなかったので、私はそれを同期して書きました。私は突然、テストの後、ショックを受け、前のコードが間違って書かれていると思ったと思いました。
場合によっては非同期に処理する必要がある場合は、Googleでノードアレイがあります、試してみることができます~~ポータル:https://github.com/cfsghost/node-array
この作品は、http://www.cnblogs.com/imyzfによって作成されました