Согласно документации , HTTP-функции прекращаются при отправке ответа клиенту. Это означает, что ваш вызов response.send () фактически завершает функцию.
Проблема в том, что вызов post()
является асинхронным и немедленно возвращается, пока HTTP-запрос продолжается в фоновом режиме. Выполнение функции продолжается сразу после публикации. Это означает, что отправленный вами ответ почти наверняка будет выполнен до того, как закончится HTTP-запрос.
Если вы хотите дождаться завершения HTTP-запроса, поместите свой ответ клиенту внутри обратного вызова, который обрабатывает ответ от HTTP-запроса.
function(error, response, body) {
if (error) {
console.log('errrrrrrrror1')
// send an error response here
} else {
jsonResponse = body;
console.log(jsonResponse); <-----Shows correct data returned
console.log('Done.');
answer = jsonResponse;
console.log('TEST: ' + answer)
// send an success response here
}
});
Также посмотрите этот видеофильм, чтобы лучше понять, как работают Облачные функции: https://www.youtube.com/watch?v=7IkUgCLr5oA&index=2&list=PLl-K7zZEsYLkPZHe41m4jfAxUi0JjLgSM