微信小程序wx.showToast弹窗没完成就跳转,加入延时执行
今天在开发小程序项目的时候,想在用户登录成功后给个弹窗再跳转到个人中心。刚开始代码如下:
wx.showToast({
title: ‘登录成功’,
icon: ‘success’,
duration:2000,
success:function(){
wx.redirectTo({
url: ‘../user-index/user-index’
})
}
})
本以为弹窗会在显示2秒后才会跳转到个人中心页,可是实际测试发现,弹窗是出现了,可是还没看清楚就跳转到个人中心去了。
原因是success中的函数是在wx.showToast执行成功就执行,执行成功不等于执行完毕,也就是说弹窗刚执行success中的函数也就开始执行了,这里的duration:2000的设置对success里函数的执行是没影响的。
那么问题来了,该如何解决呢?
其实解决方法很简单,虽然success里面的函数是马上执行的,但我们可以让里面的wx.redirectTo延时执行啊,给它加上setTimeout延时执行不就可以了么。
于是代码改成如下:
wx.showToast({
title: ‘登录成功’,
icon: ‘none’,
duration:2000,
success:function(){
setTimeout(function () {
wx.redirectTo({
url: ‘../user-index/user-index’
})
}, 2000)
}
})
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。