gpt4 book ai didi

node.js - 了解 Node 中的非阻塞 IO

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:22 24 4
gpt4 key购买 nike

这些代码有什么区别?

***第一*

var express = require('express');
var app = express();

app.post('/', function (req, res) {

console.log('Procesando abastecimiento...');

var rawData = '';

req.on('data', function (chunk) {
rawData += chunk;
});

req.on('end', function(){
console.log('Data recibida: ' + rawData);
res.end();
});
});

第二

var express = require('express');
var app = express();

app.post('/', function (req, res) {

console.log('Procesando abastecimiento...');

var rawData = '';

req.on('data', function (chunk) {
rawData += chunk;
});

req.on('end', function(){
console.log('Data recibida: ' + rawData);
});

res.end();
});

如果我在“end”事件的回调中关闭连接 (res.end()),客户端是否会等待直到读取所有数据?我不明白其中的区别,我只知道使用第二种方式我的代码更快。你能解释一下为什么吗?

最佳答案

在第一个示例中,您设置要在请求 end 回调上执行的 res.end(); 指令(即,然后 end 引发事件)。

在第二个中,您立即调用 res.end(); 而无需等待请求结束。

您可以将其视为指令 req.on('end', ...) 是一个为将来发生的事件设置处理程序的函数,但是在接收到事件之前,不会执行其中的代码。

关于node.js - 了解 Node 中的非阻塞 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34104056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com