promise的基本用法promise
promise執行多步操做很是好用,那咱們就來模仿一個多步操做的過程,那就以吃飯爲例吧。要想在家吃頓飯,是要通過三個步驟的。函數
這個過程是有必定的順序的,你必須保證上一步完成,才能順利進行下一步。咱們能夠在腦海裏先想一想這樣一個簡單的過程在ES5寫起來就要有多層的嵌套。那咱們如今用promise來實現。spa
//promise 1.洗菜作飯 2.坐下吃飯 3首飾桌子
let state = 1;
function step1(resove,reject){
console.log("洗菜作飯")
if (state== 1) {
resove("洗菜作飯完成了,給的回執")
}else{
reject("在洗菜過程當中出現了錯誤,給的回執")
}
}
function step2(resove,reject){
console.log('開始吃飯了')
if(state ==1){
resove("吃飯完成,給的回執")
}else{
reject('吃飯過程當中出錯,給的回執')
}
}
function step3(resove,reject){
console.log('開始首飾桌子')
if(state ==1){
resove('桌子已經首飾完了,給的回執')
}else{
reject('首飾桌子過程當中出錯,給的回執')
}
}
new Promise(step1).then((val) => {
console.log(val)
return new Promise(step2)
}).then((val)=>{
console.log(val)
return new Promise(step3)
}).then((val)=>{
console.log(val)
return val
})
結果:3d
Promise:簡單來說解決了函數得多層回調函數嵌套code