首页 > 解决方案 > 从 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]

标签: javascriptnode.js

解决方案


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()

推荐阅读