发现问题:
微信小程序发送网络请求前,调用wx.showLoading()显示加载中,在回调success和fail中先调用wx.hideLoading()关闭加载提示框,再调用相应业务提示wx.showToast();开发工具中一切正常,真机测试时却一闪而过。
我们知道showLoading和showToast调用的是同一个提示框,同时调用时会冲突,所以在代码里已经避免;但真机测试仿佛执行顺序仍然是wx.showLoading() -> wx.showToast() -> wx.hideLoading()
解决方案:
添加小延时,确保showToast最后执行
如果100毫秒延迟不能解决问题,可以尝试调整这个值,调整到不影响用户体验的情况下解决这个问题。
.....
wx.showLoading({
title: '加载中',
mask: true
});
.....
wx.hideLoading();
.....
setTimeout(function(){
wx.showToast({
title: '操作成功'
})
}, 100)