@nickname-none
Frontend-developer

Не работает SetTimeout в nodeJs, почему?

var http = require('http').createServer().listen(8080);

http.on('request', function(req, res){
    res.writeHead(200);
    res.write('START');
    setTimeout(function(){
        res.write('FINISH');
    }, 3000);
    res.end();
});


Когда в коде есть setTimeout, Node обязательно выводит ошибку. Я не знаю что я не правильно пишу, вероятно есть там ошибка в синтаксисе возможно. Опечатка, может быть. Вот такая ошибка в NodeJs:
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: write after end
    at ServerResponse.OutgoingMessage.write (_http_outgoing.js:413:15)
    at null._onTimeout (C:\Users\Admin\labs\hello-world\fileReader\stream.js:7:13)
    at Timer.listOnTimeout (timers.js:119:15)


Подскажите пожалуйста, в чем проблема. Без setTimeout, все благополучно выполняется.
Спасибо!
  • Вопрос задан
  • 718 просмотров
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Потому что
setTimeout(function(){
    res.write('FINISH'); // выполняется позже
}, 3000);
res.end(); // чем это

// нужно так:

setTimeout(function(){
    res.write('FINISH');
    res.end();
}, 3000);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы