微信小程序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弹窗没完成就跳转,加入延时执行_第1张图片

原来 title只显示7个字,多余的字 toast 会自动隐藏

解决方法是设置 icon:‘none’ 就可以了,这样可以添加更多文本;但是图标就不能显示了

                                                                         

你可能感兴趣的:(小程序)