l***@126.com
l***@126.com
  • 发布:2023-07-28 09:21
  • 更新:2023-07-28 09:21
  • 阅读:90

先toast后switchTab似乎有问题

分类:HTML5+

有这样一段代码:

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???

2023-07-28 09:21 负责人:无 分享
已邀请:

要回复问题请先登录注册