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

2018-07-18 Jgw、无尘 2080次 我要评论

今天在开发小程序项目的时候,想在用户登录成功后给个弹窗再跳转到个人中心。刚开始代码如下:

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) 

     } 

 })




声明:
1.本站的资源收集于互联网,仅供大家学习交流,请勿用于非法用途,否则后果自负!
2.如转载本站的原创文章,请勿必注明文章来源,对于不尊重原创的行为我们将追究责任