JavaScript と Node.js の Array.forEach の同期動作を理解する
JavaScript で配列を操作するときは、要素を反復処理するように設計された関数の動作。 Array.forEach は JavaScript と Node.js の両方のネイティブ メソッドであり、その潜在的な非同期性について疑問が生じています。
非同期動作: 明確化
Array.forEach は動作します。同期的に。これは、その実行がスレッド全体をブロックし、反復が完了するまでスクリプトのさらなる処理を保留することを意味します。
Array.forEach の仕組み
MDN (Mozilla) Developer Network) では、その実装の簡略化された表現が提供されています。
if (!Array.prototype.forEach) { Array.prototype.forEach = function(fun /*, thisp */) { "use strict"; if (this === void 0 || this === null) throw new TypeError(); var t = Object(this); var len = t.length >>> 0; if (typeof fun !== "function") throw new TypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in t) fun.call(thisp, t[i], i, t); } }; }
図に示すように、Array.forEach の反復は、各要素に対して提供された関数を順番に呼び出すループ内で実行されます。このプロセスは非同期ではありません。つまり、他のコードの実行を中断したり延期したりしません。
非同期実行の代替手段
それぞれのコードの非同期実行が必要な場合配列内の要素を使用する場合は、別のアプローチの使用を検討してください:
以上がJavaScript と Node.js の Array.forEach は同期ですか、それとも非同期ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。