异步函数承诺 (axios)

时间:2021-04-27 14:45:48

标签: javascript api asynchronous global-variables

我正在尝试从 ethgasstaion 获取 gas 价格,并在全局范围内使用此值。有没有办法可以在我的 .then() 部分中包含一个全局变量并将我的异步函数的值分配给该变量?

我得到了正确的值,但无法将其分配给全局变量。

   // Eth Gas Station
let fast_value = 0;
async function  getCurrentGasPrices() {
  let response = await axios.get(process.env.ETH_GAS_Station_API)
  let price = {
      fast: response.data.fast
  }
  return price
}
getCurrentGasPrices().then(value => {
  fast_value += value.fast;
    })

console.log(fast_value)

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你可以把所有东西都包装成一个立即调用的异步函数,这样我们就可以在里面使用 await:

(async () => {
    let fast_value = 0;
    async function getCurrentGasPrices() {
        let response = await   axios.get(process.env.ETH_GAS_Station_API);
        let price = {
            fast: response.data,
        };
        return price;
    }

    let response = await getCurrentGasPrices();
    fast_value = response.fast;
    console.log(fast_value);
})();