【问题标题】:"Who" execute async functions in node js?“谁”在节点 js 中执行异步函数?
【发布时间】:2020-10-04 22:45:00
【问题描述】:

我一直在为以下问题苦苦挣扎很久没有答案,是的,我已经在互联网上搜索了很长时间。

当我通过async 关键字(隐式)或return Promise(显式)有一个异步函数(一个返回 Promise 的函数)时,谁执行该代码?我的意思是事件循环继续,但是这段代码被执行了?

我的想法是:

  1. 代码在事件循环处于“空闲”模式时执行
  2. 其他一些“外部/工作者”线程执行它。

感谢您的支持。

【问题讨论】:

  • 其他代码调用该函数。
  • 它们都由 CPU 执行,除非您为它们生成一些外部工作线程(它们也由 CPU 执行,哈哈。谢谢@Pointy)
  • @lanxion 我敢打赌外部线程也是由 CPU 执行的 :)
  • 好吧,哈哈,应该说得更好
  • 返回 Promise 的函数的执行方式与其他函数相同。 A promise is nothing executable.

标签: javascript node.js


【解决方案1】:

两者都没有。一旦调用函数,代码就会在主事件循环中执行。

Promises aren't themselves asynchronous。它们是管理异步代码的工具。

如果异步发生在函数内部,那么如何执行取决于特定的代码。

【讨论】:

  • 如此简单,足够公平:) 谢谢 - 会接受答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 2019-08-05
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多