前端知識總結--js異步事件順序
阿新 • • 發佈:2019-05-07
res 怎樣 如果 UNC color pre 執行 style console
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
前端知識總結--js異步事件順序