Acabo de empezar a trabajar con JavaScript y no entiendo mucho al respecto. Necesito ayuda con la salida de una variable para una promesa, pero cuando la envío queda indefinida. Necesito poner esta variable en el mensaje para el bot de Telegram, cuando la pongo ahí, obtengo: [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);Me sale la respuesta: indefinido
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'); }); }Este es el código del bot de Telegram, la respuesta al mensaje/datos = Datos actuales: [objeto Promesa]
Fetch devuelve una promesa, por lo que const dataTransfer = fetch('') devuelve una promesa, a menos que la await .
Lo que funcionará es:
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()