В чем разница между этими кодами?Понимание неблокирующего IO в узле
*** First *
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();
});
Если я закрываю соединение (res.end()
) внутри обратного вызова мероприятия 'конец', будет клиент ждать, пока все данные считываются ? Я не понимаю разницы, я просто знаю, что мой код быстрее использует второй способ. Можете ли вы объяснить мне, почему?
, если вы вызываете res.end за его пределами, вызывается немедленно, как только приходит запрос на отправку. Вы должны использовать первый код, а не второй. –