promise 入門
阿新 • • 發佈:2018-11-24
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; });