首页 > 解决方案 > 如何在多个事件上运行一个函数?

问题描述

当两个变量触发事件时,我想运行一个函数。我尝试了多种方法,但没有任何效果。可能吗?

如果需要,这是我试图为您提供进一步说明的内容:

function run(arg) {
  ...
}
let e = false
event1.on('event', pass => { if (e) { run(pass) } else { e = true } })
event2.on('event', pass => { if (e) { run(pass) } else { e = true } })
function run(arg) {
  ...
}
[event1, event2].on('event', pass => { run(pass) } )
function run(arg) {
  ...
}
(event1 && event2).on('event', pass => { run(pass) } )

到目前为止,没有任何效果。我只希望函数在两个事件都被触发时运行。我怎么能这样做?

标签: javascript

解决方案


首先创建一个数组,在每个事件触发器上添加事件确实被触发的数组索引。

完成后,只需检查数组内部是否包含两个事件,然后启动运行函数。

var array = [];
function event1(){
  array.push("event1");
}
function event2(){
  array.push("event2");
}


//Check if array have 2 events triggered
if(array.some(val => val === "event1") && array.some(val => val === "event2")){
  run(pass);
}

推荐阅读