【发布时间】:2020-07-13 14:29:41
【问题描述】:
这里我写了 3 个console.log()。请帮助我,为什么 Promise 在 setTimeout 之前执行,即使它有 0 秒的延迟。据我了解,setTimeout 和 Promise 都是在 webAPI 中执行的,而不是在 JavaScript 引擎中。这东西跟优先级有关吗?
setTimeout(()=>console.log("SET TIME OUT"),0); // #1
var promise = new Promise((resolve,reject)=>{
resolve()
})
promise
.then(()=>console.log("PROMISE")) // #2
.catch((err) => console.log(err))
console.log("SIMPLE CONSOLE LOG"); // #3
输出:
SIMPLE CONSOLE LOG
PROMISE
SET TIME OUT
【问题讨论】:
标签: javascript settimeout es6-promise