promise执行顺序试题
时间: 2023-08-23 22:17:58 浏览: 98
在 JavaScript 中,Promise 的执行顺序可以通过以下方式来确定:
1. 创建 Promise 对象时,传入的执行器函数会立即执行。
2. 执行器函数中的代码会被同步执行,直到遇到异步操作或返回一个新的 Promise 对象。
3. 如果遇到异步操作(例如定时器、网络请求等),则会将该操作添加到事件队列中,并立即继续执行后续代码,不会阻塞。
4. 当前执行栈为空时,事件队列中的异步操作会被执行,并且每个异步操作的回调函数会被添加到微任务队列中。
5. 当所有同步代码执行完毕后,会开始依次执行微任务队列中的回调函数。
6. 如果微任务队列中又产生了新的微任务,会继续执行,直到微任务队列为空。
7. 当所有微任务执行完毕后,会检查是否存在宏任务(例如定时器回调、I/O 操作等)。
8. 如果存在宏任务,则会执行下一个宏任务,并将该宏任务产生的微任务添加到微任务队列中。
9. 重复步骤6和步骤7,直到没有待执行的宏任务和微任务。
需要注意的是,Promise 的执行顺序受到事件循环的影响,而事件循环的行为可能因不同的 JavaScript 运行环境而有所差异。以上是一般情况下 Promise 的执行顺序。
阅读全文