【WePY小程序框架实战四】-使用async&await异步请求数据

时间:2024-01-18 10:55:38

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()