setTimeout和Promise.then的执行顺序

时间:2017-05-23 21:44:33

标签: javascript promise settimeout event-loop

假设我们有以下代码段。有人可以解释你期望打印出来的内容以及原因吗?

setTimeout(() => {
    console.log("check 00");
}, 0);

new Promise((resolve, reject)=>{
    console.log("check 01");
    resolve();
}).then(()=>{
    console.log("check 02");
})

console.log("check 03");

通过在终端中运行,我得到了以下输出。

check 01
check 03
check 02
check 00

我理解check 01将首先打印出来,因为Promise执行函数会立即由Promise实现执行。然后我们有check 03因为JS的运行完成时间安排。

但是check 02check 00呢?

0 个答案:

没有答案