记录异步处理的两种方式
例子说明:执行方法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数据
})
两种实现结果一样,方式二写法上较为简短。