Задать вопрос
@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, все благополучно выполняется.
Спасибо!
  • Вопрос задан
  • 726 просмотров
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Потому что
setTimeout(function(){
    res.write('FINISH'); // выполняется позже
}, 3000);
res.end(); // чем это

// нужно так:

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

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

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