// 示例代码:JS 事件循环
console.log('Start');
setTimeout(() => {
console.log('Timeout');
}, 0);
Promise.resolve().then(() => {
console.log('Promise');
});
console.log('End');
同步代码:
console.log('Start');
和 console.log('End');
是同步代码,会立即执行。宏任务 (Macrotask):
setTimeout
属于宏任务,即使设置为 0 毫秒延迟,它也会在当前任务完成后执行。因此,setTimeout
的回调函数会在所有微任务完成后再执行。微任务 (Microtask):
Promise.resolve().then()
属于微任务,它会在当前同步代码执行完毕后,但在下一个宏任务之前执行。Start
End
Promise
Timeout
这是因为 JavaScript 引擎会先执行所有的同步代码,然后处理微任务队列中的任务,最后再处理宏任务队列中的任务。
上一篇:js 循环对象
下一篇:js .each
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站