【发布时间】:2021-07-19 01:01:52
【问题描述】:
由于 Node.js 是单线程、事件驱动的架构,是否可以进行同步 I/O 调用,或者我们应该始终使用回调、承诺来获取数据?
【问题讨论】:
-
什么数据库甚至提供同步数据库调用?
标签: javascript node.js database asynchronous architecture
由于 Node.js 是单线程、事件驱动的架构,是否可以进行同步 I/O 调用,或者我们应该始终使用回调、承诺来获取数据?
【问题讨论】:
标签: javascript node.js database asynchronous architecture
通常在 node js 中,你永远找不到一个更好的案例来更喜欢同步用例。好的选择始终是 Promise/async await,仅针对运行时的单线程结构(正如您所说的那样)。
【讨论】:
如果您的程序是一个旨在为多个请求提供服务的服务器,那么除了在启动或关闭代码中之外,您不应在任何地方使用任何同步 I/O,因为这样做会阻塞唯一的线程,从而破坏服务器的可伸缩性。运行您的 Javascript 强制所有请求按顺序处理,一次一个,而不是一次处理多个请求。
这实际上可能会牺牲 100 倍的可扩展性。
【讨论】: