javascript - 异步函数承诺 (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)
感谢帮助!
解决方案
您可以将所有内容包装到立即调用的异步函数中,因此我们可以在内部使用 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);
})();
推荐阅读
- python - gridsearchCV 用于线性回归
- c++ - 如何将SQL表数据放到QTableView上
- sql-server - 创建一个脚本,将两个或多个查询的结果组合起来,并使用 sp_send_dbmail 将其发送到电子邮件地址
- python - Python 中的 MT5 图形对象
- c - 通过类型转换在 C 中释放动态分配结构
- html - 如何在 ngFor 中绑定数据?
- java - Tomcat Spring mvc - 404 错误。错误在哪里?
- yaml - 如何为 OpenAPI YAML 中已定义组件的数组设置示例值?
- python - Jupyter 实验室:停止将日志消息打印到单元格输出
- sql - bcp 中的变量