非同步處理的兩種方式
阿新 • • 發佈:2021-07-20
記錄非同步處理的兩種方式
例子說明:執行方法A之後再執行方法B
定義方法
// 方法A
getStrA() {
return new Promise(function (resolve, reject) {
resolve('方法A')
})
},
// 方法B
getStrB() {
return new Promise(function (resolve, reject) {
resolve('方法B')
})
},
方式一
this.getStrA().then(resA => { console.log(resA) // 輸出方法A的resolve資料 this.getStrB().then(resB => { console.log(resB) // 輸出方法B的resolve資料 }).catch(errB => { console.log(errB) // 輸出方法B的reject資料 }) }).catch(errA => { console.log(errA) // 輸出方法A的reject資料 })
方式二
this.getStrA().then(resA => {
console.log(resA) // 輸出方法A的resolve資料
return this.getStrB()
}).then(resB => {
console.log(resB) // 輸出方法B的resolve資料
}).catch(err => {
console.log(err) // 按執行順序輸出第一個resolve資料
})
兩種實現結果一樣,方式二寫法上較為簡短。
注:本文可分享可轉發,轉發請註明出自bug源