鍍金池/ 問答/HTML/ 關(guān)于 promise 和 setTimeout

關(guān)于 promise 和 setTimeout

var p1 = new Promise(function (resolve, reject) {
    setTimeout(function(){
        resolve(1);
        console.log('p1');
    },5000)
});

var p2 = new Promise(function (resolve, reject) {
      resolve(p1);
}).then(function(data){
    console.log(data);
    console.log('p2');
})

為什么結(jié)果是p1==>1==>p2,而不是1==>p2==>p1?

回答
編輯回答
淡墨

p2 由 p1 決定狀態(tài), 5000ms 后 pi 變更為 resolved 之后p2直接變?yōu)?resolved, 繼而執(zhí)行 then

2018年3月5日 21:54