码迷,mamicode.com
首页 > 其他好文 > 详细

promise 及 setTimeout 执行顺序

时间:2019-10-22 14:40:23      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:alt   打印   UNC   顺序   inf   info   nbsp   同步   执行顺序   

setTimeout(function() {
    console.log(1);
}, 0);

new Promise(function(res, rej) {
    res(2);
    console.log(0); 
}).then(console.log);

console.log(3);

执行顺序如下:

技术图片

 

 setTimeout 的任务会被排到队列尾部,同步任务执行结束后立即执行 setTimeout(即 console.log(1));

而 promise 一旦建立,其中的任务就会立即执行(即 console.log(0));

最外层的 console.log(3) 为同步任务,则按顺序执行;

promise 中的 then 会等待 resolve 执行结束后即执行(即 res(2));

所以执行后打印出来的顺序为:0、3、2、undefined、1

promise 及 setTimeout 执行顺序

标签:alt   打印   UNC   顺序   inf   info   nbsp   同步   执行顺序   

原文地址:https://www.cnblogs.com/momo798/p/11719512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!