是否可以在Page配置中添加单例模式
提一个需求:
wx.navigateTo 快速点击会多次加载同一页面,
是否可以在Page配置中添加 单例模式的配置。
7 回复
var isTouch=false;
Page({
…
onShow: function () {
isTouch=false;
},
event…:function(e){
if(isTouch) return;
isTouch = true;
…
}
})
//我是这样做的,总觉得代码怪怪的
我会这样写,应该属于代理模式,我不太懂算法。
// fn 不运行完,再次调用 once 也没用 function once(fn) { var state = false ; return function () { if (state) return ; state = true ; fn && fn.apply( this , arguments); state = false ; } } Page({ click: function (e) { once(() => { console.log( this , e) })() }, }) |
其实判断 fn 的结束应该是写在 fn 的回调里的,但那样的话就越改越复杂了,除非可以用 await 写法。