我是nodejs的新手,我对事件循环感兴趣。但我有一个混乱的问题。
如果一个http请求需要处理10秒,那么所有其他请求是否必须等待慢速请求?
答案 0 :(得分:0)
在NodeJS中,大多数异步任务(如http请求,数据库访问等)都将使用回调或承诺。这意味着事件循环可以自由地处理其他任务,直到调用回调或promise解析为止。
您可以在NodeJS文档中阅读有关事件循环here的更多信息。
答案 1 :(得分:0)
简答:不是,其他请求将并行工作。他们不会等待第一次请求的回复。
答案很长
答案 2 :(得分:0)
事件循环只能在http请求中减慢,无论何时进行hudge同步操作,或者何时尝试将文件发送到客户端而不使用流api。每当您使用fs.readFile
读取一个hudge文件时,它会暂停一切,直到读取整个文件,但使用流api会以块的形式发送文件。为避免减慢服务器速度,您应始终使用流api读取文件,例如使用fs.createReadStream
而不是fs.readFile
,具体取决于文件的大小