情况是这样的,我在wx.request请求中,当后端返回的状态码是400的时候,会用wx.showModal弹出登陆失效的提示,问题是当小程序前端wx.request并行多个请求时,在安卓机会多次弹出,导致前端这边不好处理逻辑
原因:微信 Android 版写小程序运行时的人没限制同时弹出多个 Modal
解决:在弹出前先判断有没有标志位,有了就别弹了
if (wx.__HAS_NOTLOGIN_MODAL) {
// 这玩意儿存到哪都行,总之是全局的就可剪除以,你也可以放到 app 的 globalData 里
return;
}
wx.__HAS_NOTLOGIN_MODAL = true;
wx.showModal({
complete: () => {
// 这个延迟的目的是为了避免短时间内重复弹出
// 你要是没有这个需要也可以去掉,直接把标志位改成 false 就行
setTimeout(() => {
wx.__HAS_NOTLOGIN_MODAL = false;
}, 2000);
}
})
end