Javascript是否有内置的方式在添加侦听器后执行现有事件?

Javascript是否有内置的方式在添加侦听器后执行现有事件?,javascript,dom-events,keyboard-events,Javascript,Dom Events,Keyboard Events,在Javascript中,我这样做 window.addEventListener("aaa", event => { alert("hddi"); }); window.dispatchEvent(new CustomEvent("aaa", {detail:1})); 这是可行的,但是有没有一种最简单的方法,我可以调度事件,让所有事件排队,然后连接侦听器,让它在队列中执行所有事件(FIFO),比如: window.dispatchEvent(new CustomEvent(

在Javascript中,我这样做

window.addEventListener("aaa", event => {
    alert("hddi");
});

window.dispatchEvent(new CustomEvent("aaa", {detail:1}));
这是可行的,但是有没有一种最简单的方法,我可以调度事件,让所有事件排队,然后连接侦听器,让它在队列中执行所有事件(FIFO),比如:

window.dispatchEvent(new CustomEvent("aaa", {detail:1}));
window.dispatchEvent(new CustomEvent("aaa", {detail:1}));
window.dispatchEvent(new CustomEvent("aaa", {detail:1}));
window.addEventListener("aaa", event => {
    alert("hddi");  // alerts 3 times
});

我希望避免使用任何库,尽量减少自定义代码。是否有一种本机方法可以做到这一点?

JavaScript在触发事件时立即将事件分派给附加的事件处理程序。我不知道有哪种原生方法可以让一堆事件排队,附加一个处理程序,然后让它处理队列

您需要的是一个简单队列,外加一个处理每个项目的处理函数:

var aaa_队列=[];
aaa_queue.push({detail:1});
aaa_queue.push({detail:2});
aaa_queue.push({detail:3});
var aaa_handler=函数(obj){
log([“正在处理:”,obj]);
};
var process_queue=函数(队列、处理程序){
while(queue.length>0){
处理程序(queue.shift());//shift()删除并返回第一项
}
};

进程队列(aaa队列,aaa处理程序)我认为没有一种本机方法来处理这个问题。我认为你必须实现某种定制的排队机制来处理这个问题。你想解决什么更高层次的问题?