javascript - 如果服务器端使用Node js,为什么需要异步呢?

标签 javascript node.js asynchronous

在教程中,人们谈论 Node JS 的非阻塞、异步功能如何意味着 UI 在执行缓慢操作时保持响应 - 这些是客户端关注的问题。

但是,这不是服务器端 Node 的正常用例 - 例如从数据库中提取数据,然后在 API 中提供服务。在这种情况下,异步到底重要吗?无论如何,只有在所有数据准备就绪后,数据才会被传送,因此需要相同的时间(假设您正在响应单个 http 请求)。

最佳答案

Node.js 在单线程中运行。任何单线程运行时都需要非阻塞 I/O 以避免变得无响应。

在网络浏览器中,“无响应”意味着用户无法与页面交互,并且浏览器无法处理 requestAnimationFrame 等常规任务。这是一件坏事,但它只影响一个用户。

在网络服务器中,无响应意味着服务器无法响应任何请求。如果 10 个用户同时访问您的网站,则 9 个用户被阻止,同时 1 个用户等待数据库。这是灾难性的。

关于javascript - 如果服务器端使用Node js,为什么需要异步呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40064538/

相关文章:

javascript - 如何从异步调用返回响应?

javascript - 如何在流中使用对象属性的类型?

javascript - 有没有解决chrome中意外全局变量的方法

javascript - Raphael js - 在保留单个元素不透明度的同时为组设置动画不透明度

node.js - npm对等依赖性 react : can't install any packages

javascript - 如何在 Compromise.js 中匹配任何时态的动词

node.js - 在 NodeJs 中按照 RFC 1738 编码字符串

asynchronous - Tornado 能否以非阻塞异步方式与 Cassandra 通信?

javascript - 回调函数抛出错误

javascript - 文本内容溢出自动换行