【发布时间】:2022-01-11 04:54:52
【问题描述】:
我读过
Node.js 是单线程的,即它以单个顺序或方向执行代码。在给定时间,仅执行单个任务/调用。异步和 单线程:执行不等待当前请求完成 并移至下一个请求/调用。
我对单线程和异步这两个感到困惑。如果我在一个任务是 setTimeout 时执行一些操作序列,另一个是从 API 获取数据,另一个是一些算术运算,那么流程是如何处理的?那么考虑到单线程的操作顺序是什么?
【问题讨论】:
-
研究javascript事件循环。
-
异步基本上是一个
delayed execution.. -
当你做单线时,比如折叠你的衣服......你发现一件没有正确洗涤的衣服,你把它扔到一边待会处理。
-
@SilvanBregy - 延迟执行根本不是异步操作的适当描述。当您执行
fs.read()时,根本不会延迟执行。操作立即启动,然后函数立即返回。操作在后台进行,一段时间后,您会在完成后通过回调函数收到通知。这次执行没有任何“延迟”。setTimeout()是一种安排一些代码在未来某个时间点运行的方法,因此这是唯一可能延迟执行的地方。 -
@SilvanBregy jfriend00 是对的。这更像是一种延迟的解决方案,因此动作可以现在发生,但其最终结果稍后。
标签: javascript node.js asynchronous