看到一个问题,想请问各位前辈
发布于 4个月前 作者 hc2014 367 次浏览 来自 问答

问题:Node 自诩异步编程是它的优势,为什么在引用外部包的时候(require()函数)是同步方法,而非异步方法

我的理解是,模块之间可能有依赖关系,同步能够保证加载的顺序。 请各位前辈,讲解一下(请无视我自己的理解o(╯□╰)o)

6 回复

自己先顶一个

因为,这个地方如果改成异步,麻烦多于便利。异步的目的是什么?不是为了异步而异步。如果说 require 模块的话,模块都在本地,同步异步效率都很高啊。

支持:【不是为了异步而异步】
这个其实也应该加入到9 anti-patterns里面

@alsotang 不是为了异步而异步,这个很不错,但是还不足以全面解释这个问题,而且我不懂为什么模块在本地的话,同步比异步要快呢? 顺便说下,这个问题是我再知乎上看到的,是一道面试题目!

IO 只发生在第一次 require 的时候,所以在这里用同步应该还是可以接受的

回到顶部