微信小程序wx.showToast弹窗没完成就跳转,加入延时执行

1、wx.showToast弹窗没完成就跳转页面
开发小程序的过程中,想实现点击按钮后出现弹窗然后跳到个人中心。

wx.showToast({ title: '已完成答题,看缘分榜喽~', icon: 'loading', duration: 2000, success:function(){ wx.redirectTo({ url: '../my' }) } })

想要实现弹窗出现2秒后跳到个人中心,但实际运行时发现,有时弹窗闪一下就跳转,或者直接跳转页面
这是为啥?
原来 成功回调函数在wx.showToast执行成功立即执行,执行成功不等于执行完毕,也就是说弹窗刚执行success中的函数也就开始执行了,这里的duration:2000的设置对success里函数的执行是没有影响的。
那怎么解决?
想到延时操作,给想要等弹窗消失后再执行的操作加上延迟效果就行了。用到setTimeout
wx.showToast({ title: '已完成答题,看缘分榜喽~', icon: 'loading', duration:2000, success:function(){ setTimeout(function () { wx.redirectTo({ url: '../my' }) }, 2000) } })


2、还有一个问题,我们在弹窗中加入文字,但是运行出来只显示了一行字。为什么呢?
显示效果表示有字数限制。代码为上面第二个
微信小程序wx.showToast弹窗没完成就跳转,加入延时执行
文章图片

原来 title只显示7个字,多余的字 toast 会自动隐藏
解决方法是设置 icon:‘none’ 就可以了,这样可以添加更多文本;但是图标就不能显示了
【微信小程序wx.showToast弹窗没完成就跳转,加入延时执行】微信小程序wx.showToast弹窗没完成就跳转,加入延时执行
文章图片

    推荐阅读