我在我的应用程序中对接和取消停靠功能。
当用户取消停靠窗口并重新停靠时,function1
和function2
都将被执行。
如果用户关闭了取消停靠窗口(弹出窗口),则只会执行function2
。
问题是,如果function1执行,我想将值设置为true。我无法改变功能的顺序。
我该怎么做?请帮忙
function1(){
this.Watch.setValue(true);
}
function2(){
this.Watch.setValue(false);
}
答案 0 :(得分:0)
bind
函数可能有所帮助,点击运行查看结果,使用新函数会更新值
const [dock, undock, getValue] = bind(oldDock, oldUndock, false)
console.log(getValue())
dock()
console.log(getValue())
undock()
console.log(getValue())
function bind(toTrue, toFalse, initValue) {
let val = initValue
return [
(...args) => {
val = true
toTrue(...args)
},
(...args) => {
val = false
toFalse(...args)
},
() => val,
]
}
function oldDock() {
console.log('dock')
}
function oldUndock() {
console.log('undock')
}