
正文
前端知识总结--js异步事件顺序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
js中异步事件中容易混淆的 Promise 和 setTimeout 的执行顺序是怎样的?
setTimeout(() => console.log(1), 0); new Promise(function (resolve, reject) {
console.log(2);
//resolve(1);
setTimeout(function(){
console.log(3);
resolve(1);
}, 0);
})
.then(() => {
console.log(4)
}) console.log(5) setTimeout(() => console.log(6), 1000); setTimeout(() => console.log(7), 0); setTimeout(() => console.log(8), 1000);
输出:
2
5
1
3
4
7
6
8
如果Promise中不包含异步事件:
setTimeout(() => console.log(1), 0); new Promise(function (resolve, reject) {
console.log(2);
resolve(1);
// setTimeout(function(){
// console.log(3);
// resolve(1);
// }, 0);
})
.then(() => {
console.log(4)
}) console.log(5) setTimeout(() => console.log(6), 1000); setTimeout(() => console.log(7), 0); setTimeout(() => console.log(8), 1000);
输出:
2
5
4
1
7
6
8






