What is Javascript atomic execution unit for event

2019-09-15 05:10发布

The javascript engine is executing a function which in turn calls another function (sequentially) and this goes on for say 5s. Meanwhile, several events were triggered either by the user or programmatically.

Can we take for granted that no event will be handled before the outermost function finishes?

/* Example */

function outermost_function() {
 function inner_function () {
  function innermost_function () {
    return;
  }
 }
}

1条回答
干净又极端
2楼-- · 2019-09-15 05:18

Javascript is single threaded and events are queued in an event loop. JS code does not execute in parallel on the main thread. Code on the main thread is never interrupted.

That being said, it is possible to execute code in parallel with the use of web workers.

There are many excellent articles on the subject of the Javascript event loop, I would recommend starting here

查看更多
登录 后发表回答