首页 > 解决方案 > 异步函数承诺 (axios)

问题描述

我正在尝试从 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)

感谢帮助!

标签: javascriptapiasynchronousglobal-variables

解决方案


您可以将所有内容包装到立即调用的异步函数中,因此我们可以在内部使用 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);
})();


推荐阅读