0
這是一個小問題,但是當我學習JavaScript時,我仍然對運行時的一些細微差別感到朦朧。具體來說,我很好奇事件循環如何處理像Array.prototype.map
這樣的事情?不知道確切的實現,我想知道是否可以在迭代之間執行代碼?JavaScript事件循環在地圖迭代之間是否產生控制?
這是一個小問題,但是當我學習JavaScript時,我仍然對運行時的一些細微差別感到朦朧。具體來說,我很好奇事件循環如何處理像Array.prototype.map
這樣的事情?不知道確切的實現,我想知道是否可以在迭代之間執行代碼?JavaScript事件循環在地圖迭代之間是否產生控制?
沒有。 map
是一個同步操作。
setTimeout(function() {
console.log('run as soon as possible');
}, 0);
[1, 2, 3, 4, 5].map(function(x) {
console.log(x);
});
事件循環基本上打破了這樣的:
所以說你打造通過'map'建立一個函數數組,大概如果你在下一行執行這些函數'setTimeout'應該在這些函數執行之前觸發? – maxcountryman
@maxcountryman如果您在映射之後直接運行任何更多的同步代碼,那麼該代碼將在函數傳遞給setTimeout之前運行 –
您是說'setTimeout'在下一行同步代碼之前不會執行其回調? – maxcountryman