javascript - 如何在 Node.js 的异步函数之外使用变量?
问题描述
我正在尝试bida
在代码的其他地方使用该变量。例如,当我尝试创建变量mida
. 有没有办法在不将所有内容嵌套在getFX()
函数中的情况下做到这一点?我知道这是一个异步函数问题,但我该如何解决呢?
const fetch = require("node-fetch");
async function getFX() {
let bida;
try {
var req = await fetch('https://economia.awesomeapi.com.br/all/USD-BRL');
var response = await req.json()
bida = await response.USD.bid;
aska = await response.USD.ask;
console.log(bida, aska)
} catch (e) {
// handle error
console.error(e)
}
}
getFX()
var mida = bida + 1;
console.log (mida);
解决方案
您应该在 getFX() 函数之外初始化 bida 变量,以便能够在该文件的其他位置访问它,并且仅在 getFX 使用 .then() 解析时才设置 mira 变量的值,以便能够使用 bida 的值因为 getFX 是一个异步函数。这是我的做法:
const fetch = require("node-fetch");
let bida;
async function getFX() {
try {
var req = await fetch('https://economia.awesomeapi.com.br/all/USD-BRL');
var response = await req.json()
bida = await response.USD.bid;
aska = await response.USD.ask;
console.log(bida, aska)
} catch (e) {
// handle error
console.error(e)
}
}
getFX().then(() => {
var mida = bida + 1;
console.log (mida);
})
希望能帮助到你 !
推荐阅读
- elasticsearch - 当我查询任务列表时,ElasticSearch 不返回“deletebyquery”任务
- python - Pandas 基于整个数据框计算列值
- c# - 间歇性错误:请求被中止:无法创建 SSL/TLS 安全通道
- c# - 无法翻译 LINQ 表达式 - 实体框架核心
- r - 将栅格从投影坐标系转换为地理坐标系时最小化数据丢失的最佳方法
- r - 使用 reactivePoll 监控文件夹的变化
- python - 是否可以在装饰器上使用方法?
- javascript - DiscordJS - 获取所有 DM 频道
- c# - Mongo Db在c#中对具有相同数据结构的集合进行查询
- typescript - Visual Studio 2019 使用相对路径导入 TS 文件,而不是使用 tsconfig 文件中的“路径”别名