Как получить тело ответа из get-запроса needle js
Мне нужно внутри asynс функции вызвать needle и обработать тело ответа вне самой needle.
Внутри коллбэка я получаю тело ответа и могу делать с ним все что захочу:
const needle = require('needle');
const data = needle("get", "https://ya.ru", function (error, response) {
const body = response.body;
console.log(body);
});
Однако попытка вернуть тело ответа дает "Promise { <pending> }"
const needle = require('needle');
const data = needle("get", "https://ya.ru")
.then(function (response) {
return response.body;
});
console.log(data);
Попытка записать результат в заранее определенную переменную также не дает результата:
let res = '';
const data = needle("get", "https://ya.ru")
.then(function (response) {
res = response.body;
});
console.log(res);
Я новичок в JS, честно пытаюсь разобраться в асинхронном коде, однако в учебниках в основном отвлеченные примеры, которые объясняют как работает async, но не дают решения конкретно этой задачи либо я не могу это понять.
Я понимаю, что у асинхронной функции есть несколько состояний и надо дождаться, пока функция будет выполнена, чтобы получить результат. Но как именно это сделать - не понимаю.
В других подобных случаях часто советуют использовать then или async / await, но then у меня дает все также pending, а как правильно использовать async await внутри await функции понять не получается.
Помогите, пожалуйста, разобраться.