0

我正在尝试将 API 调用响应存储到变量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)
4

2 回答 2

0

dog()将返回一个承诺,因为它是一个异步函数。你可以得到这样的值:

let cat = await dog();

或者

dog().then((cat)=>{
  // do something here with the response
})
于 2020-07-09T15:31:40.197 回答
0
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 对象,您可以将其打印到控制台。

于 2020-07-17T14:16:21.967 回答