开发者社区 问答 正文

setTimeOut,Promise, async/await的区别

setTimeOut,Promise, async/await的区别

展开
收起
问答小能手! 2021-01-22 20:25:44 1699 分享 版权
1 条回答
写回答
取消 提交回答
  • 来自昆仑山,真名陆离。

    考察这三者在事件循环中的区别,事件循环中分为宏任务队列和微任务队列。

    1.settimeout的回调函数放到宏任务队列里,等到执行栈清空以后执行;
    2.promise.then里的回调函数会放到微任务队列里,等宏任务里面的同步代码执行完再执行;
    3.async 函数返回一个 Promise 对象,当函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再执行函数体内后面的语句。可以理解为,是让出了线程,跳出了 async 函数体。

    2021-01-22 20:26:35
    赞同 展开评论