【问题标题】:What is Javascript atomic execution unit for events?什么是事件的 Javascript 原子执行单元?
【发布时间】:2016-12-09 11:57:05
【问题描述】:

Javascript 引擎正在执行一个函数,该函数依次调用另一个函数(按顺序),这会持续 5 秒。同时,有几个事件是由用户或以编程方式触发的。

我们可以想当然地认为在最外层的函数完成之前不会处理任何事件吗?

/* Example */

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

【问题讨论】:

  • 为什么这个标签是async/await?那些“依次相互调用”的函数是异步的吗?这将产生巨大的影响。
  • 嗨@Bergi,老实说答案不够清楚,我会相应地改变它。
  • 对不起,这不是答案,而是问题!

标签: javascript asynchronous async-await dom-events javascript-engine


【解决方案1】:

Javascript 是单线程的,事件在事件循环中排队。 JS 代码不会在主线程上并行执行。主线程上的代码永远不会中断。

话虽如此,使用web workers 可以并行执行代码。

关于 Javascript 事件循环的主题有很多优秀的文章,我建议开始here

【讨论】:

    猜你喜欢
    • 2017-11-05
    • 2015-11-24
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多