Задать вопрос
@D_K_D
Junior

Как сделать асинхронный вызов?

Сейчас этот код вызывает 3,1,2. А нужно 1,2,3. Как это можно сделать ?

const http = require('http');
let users = [];
function signUser(login, password) {
    users.push({
        login: login,
        password: password,
        notesList: [],
        diaryList: [],
    });
    console.log('1');
}
http.createServer(function (request, response) {
    let data = [];
    request.on('data', (chunk) => {
        data.push(chunk);
    });

    request.on('end', () => {
        data = JSON.parse(data);
        signUser(data.login, data.password);
        console.log('2');
    });
    response.end(JSON.stringify(users[0]), console.log('3'));
}).listen(3000);
  • Вопрос задан
  • 39 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
black1277
@black1277
Вольный стрелок
Сейчас вы шлете ответ response.end еще не обработав события 'data' и 'end', поэтому получаете 3,1,2. Перенесите строку
response.end(JSON.stringify(users[0]), console.log('3'));

сразу под console.log('2'); и получите желаемый результат.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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