Я пытаюсь сохранить ответ на вызов API в переменной cat. Когда я выполняю следующий код, консоль регистрирует Promise { <pending> }. Почему это происходит?
cat
Promise { <pending> }
const got = require('got'); let dog = async () => { try { const response = await got('https://api.coinpaprika.com/v1/coins/btc-bitcoin'); return response; } catch (error) { console.log(error.response.body); //=> 'Internal server error ...' } } let cat = dog(); console.log(cat)
const got = require('got'); let dog = async () => { try { const response = await got('https://api.coinpaprika.com/v1/coins/btc-bitcoin'); return await response.json(); } catch (error) { console.log(error.response.body); //=> 'Internal server error ...' } } let cat = dog(); console.log(cat)
В вашем коде response - это обещание. Я ожидаю, что ваши данные о ценах будут возвращены как JSON, поэтому вам нужно добавить return await response.json(), который вместо этого вернет объект JSON, который вы можете распечатать на консоли.
response
return await response.json()
dog() вернет обещание, потому что это асинхронная c функция. Вы можете получить такое значение:
dog()
let cat = await dog();
OR
dog().then((cat)=>{ // do something here with the response })