Как использовать cryptocomapre api для отображения цены BTC? - PullRequest
0 голосов
/ 01 января 2019

Я работаю над электронным приложением и использую cryptocompare api для отображения цены BTC, но она не отображается.Я испробовал каждое решение, о котором только мог подумать, была бы признательна за помощь !!

const electron = require('electron');
const path = require('path');
const BrowserWindow = electron.remote.BrowserWindow;
const axios = require('axios');

const notifyBtn = document.querySelector('.notify-btn');
const price = document.querySelector('.price');
const targetPrice = document.querySelector('.target-price');

function  getBTC(){
    const cryptos = axios.get('https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD&api_key={api_key}')
        price.innerHTML = '$'+cryptos
    }

getBTC();
setInterval(getBTC, 20000);

Это дает мне вывод '$ [object Promise]'

1 Ответ

0 голосов
/ 01 января 2019

В документации к axios говорится, что вам нужно сделать это вместо этого:

axios.get(url)
    .then(function (response) {
        // do something with response
    });

Это потому, что значение, возвращаемое axios.get, не является ответом, это обещание, которое разрешится вответ.(Таким образом, он приводится к строке [object Promise].) Если вы не знаете, что это значит, прочитайте эту ссылку .По сути, обещания - это способ справиться с задачами, выполнение которых занимает много времени (например, вызовы API), не блокируя запуск другого кода JavaScript.Но в любом случае вам нужно вот что:

function  getBTC(){
    axios.get('https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD&api_key={api_key}')
        .then(function(response) {
            var data = response.data;
            var cryptos = // get cryptos from data somehow
            price.innerHTML = '$'+cryptos;
        });
}

Я не читал детально документацию по axios.Я верю, что вы ищете в response.data, но я не мог сказать вам больше, чем это.Попробуйте console.log('Response:', response);, чтобы узнать, как устроен ответ.

...