async await 是对promise的近一步优化,既解决了promise链式then的这种写法壁垒,又让异步请求更像同步,若对async await不太了解的同学可以直接参考阮一峰老师的文章async 函数的含义和用法,这里我们只关注怎么在小程序wepy架构中如何使用。
依赖库
import ‘wepy-async-function‘
app.wpy中启用
export default class extends wepy.app {
constructor () {
super()
this.use(‘promisify‘);
}
}
使用实例
getData(x){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
if(x%2 === 0){
resolve(x)
}else{
reject(`${x}是不正确的输入`);
}
},x*1000)
})
}
async onLoad() {
try{
let data1 = await this.getData(2);
console.log(data1);
let data2 = await this.getData(1);
console.log(data2);//已经异常不再执行
}catch(error){
console.log(error);
}
}
调用
onLoad() // 以同一时间为基准,2秒后输出2,3秒后输出 1不是正确的输入
getData().then(fun(),fun()