【发布时间】:2017-10-25 00:20:27
【问题描述】:
如果这很明显,请原谅!我很难理解 node.js 如何响应来自浏览器的请求。我已经浏览了互联网上的教程,其中 express.js 用于使用 node.js 构建其余的服务器端代码。现在除此之外,还设置了适用于承诺的路线。所以很明显,只有当 Promise 解决时才会发回响应。所以流程是-
// 第一行
浏览器 -> REST 服务
//第二行
REST 服务 -> 查找路由 -> 命中服务 -> 获取数据 -> 将数据发送回浏览器
第二行的整个过程处于异步模式。那么服务器端是否会有一个线程挂起,浏览器会等待启用 node.js 的 REST 服务返回响应?如果不是这样,浏览器或 REST 客户端(例如 POSTMAN)如何实时了解响应。
编辑:
我已经删除了外部链接,因为它造成了混乱。
【问题讨论】:
-
“那么服务器端会有线程挂起吗”——为什么会有?正如你所说,它使用承诺。
-
"浏览器将等待启用 node.js 的 REST 服务返回响应" — HTTP 客户端总是必须等待响应。网络需要时间。这里没有什么特别的。
-
如果他们必须等待响应,一些线程也会在服务器端打开,对吗?否则你将如何返回响应?
-
@user3276247 不是线程,而是(TCP)连接。一个单线程进程可以同时打开多个进程。
-
@robertklep 谢谢
标签: javascript node.js rest express promise