async await宏任务微任务
时间: 2023-10-15 15:29:54 浏览: 265
cw13087797767#knowledge_note#宏任务、微任务1
在 JavaScript 中,async/await 是用于处理异步操作的语法糖。它建立在 Promise 和生成器函数之上,使得编写和处理异步代码更加简洁和直观。
当我们在一个 async 函数中使用 await 关键字来等待 Promise 的解决时,事件循环会暂停执行 async 函数中的代码,并等待 Promise 的状态变为解决(resolve)。一旦 Promise 被解决,async 函数将继续执行,并返回解决的值。
宏任务(macro task)和微任务(micro task)是异步任务的两类不同分类。宏任务通常包括 setTimeout、setInterval、I/O 操作等,而微任务则包括 Promise、process.nextTick 等。
在事件循环中,宏任务会优先执行,而微任务会在当前宏任务执行结束后立即执行。也就是说,在一个宏任务中产生的所有微任务会在下一个宏任务执行前被处理完毕。async/await 使用的 Promise 是微任务,因此在 async 函数中使用 await 时,会先执行等待状态的 Promise 的回调函数(微任务),然后再执行其他的宏任务。
总结起来,async/await 允许我们以同步的方式编写异步代码,并且通过微任务确保代码执行的顺序和可控性。
阅读全文