Почему в JS функции не могу вернуть значение переменной, получаемой в callback'e?

Функция:
function processPost2(request) {
	var body = ''
	request.on('data', function(data) {
		body += data
	})
	request.on('end', function() {
		body = qs.parse(body) // string -> object
		console.log(body)
	})
	return body
}

Там где console.log(body) в консоль принтится то, что нужно. Но если я сделаю console.log(processPost2(request)) то видно, что функция возвражает пустую строку. Где что не так?
  • Вопрос задан
  • 2909 просмотров
Решения вопроса 1
morozovdenis
@morozovdenis
request выполняется асинхронно и в момент return body он ещё не выполнился

вот такой код
console.log(processPost2(request))
должен распечатать
'' - пустая строка
'<response body>' - ответ
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
03 апр. 2020, в 22:05
80000 руб./за проект
03 апр. 2020, в 19:50
20000 руб./за проект
03 апр. 2020, в 19:01
500 руб./за проект