情况是这样的,我在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

 

作者 admin

百度广告效果展示