node.js - node express 能否在返回当前请求的响应之前处理下一个请求?
问题描述
我想知道 nodejs 是否需要在提供下一个请求之前完成对当前请求的返回响应。我在其他任何地方都找不到我的问题的答案。
提前致谢。
解决方案
Nodejs 之所以称为单线程,是因为所有请求都由一个线程提供服务(我们将此线程称为主线程)。
假设您的两个请求来自服务器:请求 1 -> 必须读取一个大文件(假设大约 100MB)然后解析结果,然后返回值请求 2 -> 获取 2+2 的结果,然后返回响应
从请求中我们可以看到,请求 1 将花费大量时间,而请求 2 则不会。
如果您正确编写了代码,即使用异步编程Request1 将由另一个线程而不是main 处理,那么如果Request2 到来,它将在Request1 之前得到响应。
如果没有编写正确的代码,则在 Request1 的处理完成之前,不会处理 Request2。
我希望这回答了你的问题。
推荐阅读
- javascript - 开发 Office 插件,AppsForOffice CDN 需要后备
- spring-cloud-dataflow - 部署 Spring Cloud Data Flow 本地服务器
- python - 使用 selenium bot 从网页打印数字的问题
- php - PHP cURL 不会将 JSON 发布到 API
- c# - 如何使用 getMessageAsync((ulong)id) 将 Discord.IMessage 转换为字符串?
- reporting-services - 当页面上显示多个子报表时,值未显示在 SSRS 报表标题中
- java - 无法在 webview 中加载 url - 黑屏
- postgresql - 两个子查询返回正确的数据但重复
- iphone - 神经引擎 iPhone/iPad 编程
- ocaml - 如何在 Ocaml 中正确使用分隔符