程式碼片段

weixin_33766168發表於2019-02-21
 function p1(){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            console.log("p1_3000");
            resolve()
        },3000)
    })
   
}
function p2(){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            console.log("p2_2000");
            resolve()
        },2000)
    })
}
        
//await 只能出現在非同步函式裡
 async function f(){
    console.log("0000")
    await p1();
    await p2();
    console.log("1010")
 }
 
 p3=f();
 p3.then(function(){
     console.log("結束")
 })
console.log(1);
console.log(2);
setTimeout(function(){
    console.log(3)
},3000);
console.log(4);
console.log(5)

上邊的列印結果大家想必都知道,這是同步狀態下的執行順序

//在看一個栗子
function p1(){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            console.log("p1_3000");
            resolve()
        },3000)
    })
}
function p2(){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            console.log("p2_2000");
            resolve()
        },2000)
    })
}
 console.log("0000");
 p1();
 p2();
 console.log("1010")

 //跟大家預期的結果一樣,執行按照如下順序輸出
 //0000 
 //1010
 //p2_2000
 //p1_3000

我們們想做的是讓他按這個順序執行下來我們們就要用到

相關文章