javascript - 从 json 文件 JavaScript 获取数据
问题描述
我刚开始使用 JavaScript,对它了解不多。我需要帮助输出一个承诺的变量,但是当我输出它时它变得未定义。我需要将此变量放在电报机器人的消息中,当我把它放在那里时,我得到:[object Promise]
import fetch from 'node-fetch';
const dataTransfer = fetch('https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json')
.then(currencyEx => currencyEx.json())
.then(data => data[0].exchangedate);
console.log(dataTransfer.data);
我得到答案:未定义
function start() {
function curData(chatId) {
return bot.sendMessage(chatId, `Current data: ${dataTransfer.data}`);
}
bot.on('message', msg => {
const text = msg.text;
const chatId = msg.chat.id;
if (text === '/data') {
return curData(chatId);
}
return bot.sendMessage(chatId, 'idk');
});
}
这是电报机器人代码,对消息/数据的响应=当前数据:[object Promise]
解决方案
Fetch 返回一个承诺,所以const dataTransfer = fetch('')
返回一个承诺,除非你await
同意。
将起作用的是:
import fetch from 'node-fetch';
const fetchData = async () => {
const resp = await fetch('https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json')
const dataTransfer = await resp.json();
console.log(dataTransfer);
}
fetchData()
推荐阅读
- sql - 为 sap hana 上的表列生成哈希列
- sql-server - DBCC SHRINKFILE 会杀死活动事务吗?
- jms - 使用 Wildfly 进行批处理/批量消息 (JMS) 处理
- objective-c - 为什么找不到 Swift 4 语言的 Xcode 目标 c 接口标头名称
- c - 文件缓冲区太小
- java - 使用资源在嵌套尝试中移动 CloseableHttpResponse
- android - 为什么游戏不显示布局边界?
- javascript - 如何在javascript(angularjs)中的数组中查找数组是否为空
- c# - 使用 Cake-build 创建 dmg
- javascript - 如何使用 XMLHttpRequest 在 Firefox 中返回文件?似乎从来没有达到 readystate == 4 和 status == 200