我已经用纯JavaScript创建了一个插件,并希望创建一个事件,当我的插件准备就绪时将触发该事件。
以便其他一些JavaScript代码可以订阅该事件并在插件准备好后立即采取行动。
目前,我正在采用以下一种简单方法。
var pluginLoadEvent = new CustomEvent(
"plugin-ready",{
bubbles: true,
cancelable: true
}
);
并在插件准备好后分派此事件:
document.dispatchEvent(pluginLoadEvent);
该事件的订阅方式如下:
document.addEventListener('plugin-ready',window.function_after_plugin_ready);
问题在于,我的CustomEvent是在与订阅不同的文件中创建和调度的,这会导致竞态条件问题,其中在订阅之前调度事件。
如何确保订阅在发送之前发生?