项目场景:
最近公司在做微信小程序的项目,碰到async await的问题记录一下。
问题描述:
报Unexpected reserved word ‘await’.这个错误:源代码如下:
/* 取消订单 */
async cancelOrder(){
wx.showModal({
content: '确定取消当前订单么?',
success: (res) => {
if (res.confirm) {
const result = await requestPost({url:"AntiFilm/DeleteOrder",data:this.QueryParams },false);
wx.redirectTo({
url: '/pages/order/index?type=1',
})
} else if (res.cancel) {
showToast({title: '用户未取消订单!',icon: 'none'});
}
}
})
},
原因分析:
把async
放到cancelOrder
方法上,这里async
和await
是成对出现的,所以应该放在匿名函数的位置,加async
的函数会被await
阻塞,await
会跳出async
让出线程。
正确代码:
/* 取消订单 */
cancelOrder(){
wx.showModal({
content: '确定取消当前订单么?',
success: async (res) => {
if (res.confirm) {
const result = await requestPost({url:"AntiFilm/DeleteOrder",data:this.QueryParams },false);
wx.redirectTo({
url: '/pages/order/index?type=1',
})
} else if (res.cancel) {
showToast({title: '用户未取消订单!',icon: 'none'});
}
}
})
},
总结:
引用一句话:学一个东西是一回事,会用一个东西是另外一回事。
自勉!