美文网首页
setTimeout、Promise、Async/Await 的

setTimeout、Promise、Async/Await 的

作者: 李小白呀 | 来源:发表于2021-03-10 23:17 被阅读0次

    事件循环中分为宏任务队列和微任务队列

    宏任务(macrotask):在新标准中叫 task
    主要包括:script(整体代码),setTimeout,setInterval,setImmediate,I/O,ui rendering
    微任务(microtask):在新标准中叫 jobs
    主要包括:process.nextTick, Promise,MutationObserver(html5 新特性)

    setTimeout、Promise、Async/Await 的区别

    setTimeout 的回调函数放到宏任务队列里,等到执行栈清空以后执行
    Promise.then 里的回调函数会放到相应宏任务的微任务队列里,等宏任务里面的同步代码执
    行完再执行
    async 函数表示函数里面可能会有异步方法,await 后面跟一个表达式
    async 方法执行时,遇到 await 会立即执行表达式,然后把表达式后面的代码放到微任务队
    列里,让出执行栈让同步代码先执行

    相关文章

      网友评论

          本文标题:setTimeout、Promise、Async/Await 的

          本文链接:https://www.haomeiwen.com/subject/vqdiqltx.html