此事件调度是同步的吗?

时间:2014-05-12 08:03:29

标签: javascript javascript-events

我的印象是我使用了错误类型的'''''

现在我希望注释掉的代码仅在计算x = 5 + 5之后运行并且仅在grawGrid()之后运行;完成它正在做的任何事情。

我的印象是,这属于编程的异步/同步领域以及我读取的调度事件是同步的。

yoopee = function() {

    //Dispatch an event to another .js file.
    var eventFired = new CustomEvent("snapShotFired", { "detail": "An event was fired" });
    document.dispatchEvent(eventFired);

    //code here continues after the "x = 5+5 and drawGrid() finished calculating"
}



document.addEventListener("eventFired", function(e) {
  x = 5+5;
  drawGrid();
});

我使用的是正确类型的事件调度,还是我忽略了这一点?

PS:上面的代码不应该做任何事情,我只想试着明白这一点。*

1 个答案:

答案 0 :(得分:1)

根据dispatchEvent()的{​​{3}}:

  

事件处理程序在嵌套的callstack上运行:它们阻止调用者   直到它们完成,但异常不会传播给调用者。

由于它们会阻止调用者直到完成,因此它们会同步运行。