首页 > 解决方案 > node express 能否在返回当前请求的响应之前处理下一个请求?

问题描述

我想知道 nodejs 是否需要在提供下一个请求之前完成对当前请求的返回响应。我在其他任何地方都找不到我的问题的答案。

提前致谢。

标签: node.jsexpress

解决方案


Nodejs 之所以称为单线程,是因为所有请求都由一个线程提供服务(我们将此线程称为主线程)。

假设您的两个请求来自服务器:请求 1 -> 必须读取一个大文件(假设大约 100MB)然后解析结果,然后返回值请求 2 -> 获取 2+2 的结果,然后返回响应

从请求中我们可以看到,请求 1 将花费大量时间,而请求 2 则不会。

如果您正确编写了代码,即使用异步编程Request1 将由另一个线程而不是main 处理,那么如果Request2 到来,它将在Request1 之前得到响应。

如果没有编写正确的代码,则在 Request1 的处理完成之前,不会处理 Request2。

我希望这回答了你的问题。


推荐阅读