有这样一段代码:
createOrderItemMultiple({orderItems: data}).then(response => {
if (response.code === 200) {
uni.showToast({
title: '支付成功',
icon: 'success',
duration: 2000,
mask: true,
success() {
console.info('success')
},
fail(res) {
console.info('fail')
console.info(res);
},
complete() {
console.info('complete')
removeCartItems();
uni.switchTab({
url: '/pages/mall/mall?paymentStatus=true'
});
}
});
} else {
uni.showToast({
title: response.msg,
duration: 3000
});
}
})
createOrderItemMultiple 是我的创建订单的函数。
我的本意是如果提交订单成功,就提示个信息,然后等提示信息消失之后去目标页面。如果订单失败,就提示服务器返回的错误消息,然后停留在本页面。
问题是:订单提交成功,也就是response.code === 200之后,它会立即跳走,根本不展示我要提示的“支付成功”的消息,也没有2秒的延迟提示等待。看了网上很多资料,说是uni.switchTable要用setTimeout去触发,我想知道为什么呢?我这么写难道代码逻辑不清晰吗?为什么要额外的setTimeout???
0 个回复