gpt4 book ai didi

javascript - dispatchEvent 是同步函数还是异步函数

转载 作者:可可西里 更新时间:2023-11-01 01:30:47 26 4
gpt4 key购买 nike

我正在尝试为 WinJS 中的自定义事件编写事件处理程序。我不太确定这在 IE 中是如何工作的 -我正在创建一个自定义事件并发送它 -

var eventObject = document.createEvent("CustomEvent");
eventObject.initCustomEvent("dropbomb", true, true, null);
this._element.dispatchEvent(eventObject);

我的处理程序是 -

this._element.addEventListener("logtelemetry", function () {
console.log("boom");
});

我能确定处理程序将同步调用而不是稍后调用吗?如果是,那么证据是什么。

最佳答案

它保证是同步的,因为:

The return value of dispatchEvent indicates whether any of the listeners which handled the event called preventDefault.

由于返回值指示是否有任何监听器处理了调用 preventDefault 的事件,因此该方法必须阻塞(不返回)直到所有监听器执行完毕,这是同步调用的定义。

以上引文摘自the dispatchEvent specification in DOM Level 2 Events , 于 2000 年 11 月获得“推荐”状态(标准)。Internet Explorer 已遵守此标准 since at least IE 9 .

要自己验证,请在 .dispatchEvent 调用后立即添加 console.log 语句,并注意 “boom”(来自您的事件处理程序)总是首先记录。

关于javascript - dispatchEvent 是同步函数还是异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com