簡體   English   中英

JavaScript事件循環是否在地圖迭代之間產生控制權?

[英]Does the JavaScript event loop yield control between map iterations?

這是一個基本問題,但是當我學習JavaScript時,我仍然對運行時的某些細微差別感到迷惑。 具體來說,我很好奇事件循環如何處理Array.prototype.map東西? 在不知道精確實現的情況下,我想知道是否可以在兩次迭代之間執行代碼?

不。 map是同步操作。

 setTimeout(function() { console.log('run as soon as possible'); }, 0); [1, 2, 3, 4, 5].map(function(x) { console.log(x); }); 

事件循環基本上是這樣分解的:

  1. 運行同步代碼
  2. 根據需要將項目添加到事件隊列
  3. 完成運行同步代碼
  4. 檢查事件隊列中是否應立即運行任何代碼
  5. 如果異步代碼已准備好運行,請將其作為同步代碼啟動並返回1
  6. 如果沒有准備好運行的代碼,請返回到4。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM