1. 程式人生 > >promise 入門

promise 入門

promise執行多步操作非常好用,那我們就來模仿一個多步操作的過程,那就以吃飯為例吧。要想在家吃頓飯,是要經過三個步驟的。1,洗菜做飯,2,坐下來吃飯,3,收拾桌子洗碗。

這個過程是有一定的順序的,你必須保證上一步完成,才能順利進行下一步。我們可以在腦海裡先想想這樣一個簡單的過程在ES5寫起來就要有多層的巢狀。那我們現在用promise來實現。

let state=1;
function step1(resolve,reject){
    console.log('1.開始-洗菜做飯');
    if(state==1){
        resolve('洗菜做飯--完成');
    }else{
        reject('洗菜做飯--出錯');
    }
}
function step2(resolve,reject){
    console.log('2.開始-坐下來吃飯');
    if(state==1){
        resolve('坐下來吃飯--完成');
    }else{
        reject('坐下來吃飯--出錯');
    }
}
function step3(resolve,reject){
    console.log('3.開始-收拾桌子洗完');
     if(state==1){
        resolve('收拾桌子洗完--完成');
    }else{
        reject('收拾桌子洗完--出錯');
    }
}
new Promise(step1).then(function(val){
    console.log(val);
    return new Promise(step2);
}).then(function(val){
     console.log(val);
    return new Promise(step3);
}).then(function(val){
    console.log(val);
    return val;
});