Как я могу вызывать метод каждые х секунд? - PullRequest
0 голосов
/ 26 августа 2018

Мне нужно вызывать метод getBitcoins () каждую секунду.

Попробовал: я попытался просто вывести его из методов и поместить его в строку import Pickaxe from '../assets/pickaxe.png', а затем использовать setInterval для вызова его каждую секунду, но тогда я не могу получить доступ к переменной данных btcPrice внутриgetBitcoins ().

Так что мне нужен способ вызывать getBitcoins () из функций методов каждую секунду, как это показано в коде ниже.

<template>
  <div id="wrapper">
    <div class="top"></div>
    <!-- Center -->
    <div class="center">
      <img :src="Pickaxe" class="Pickaxe">
      <span class="my-btc">{{ mybtc.toFixed(8) }}</span>
      <span id="btc">1 BTC = {{ btcPrice }}</span>
      <button class="Mine">Mine</button>
      <span class="hashes">{{btcMin}} btc/min</span>
      <button class="Upgrade">UPGRADE</button>
      <span class="upgradePrice">{{ upgradePrice }}btc</span>
    </div>
  </div>
</template>

<script>
  import bitcoin from '../assets/bitcoin.svg'
  import Pickaxe from '../assets/pickaxe.png'

  export default {
    name: 'landing-page',
    data() {
      return {
        bitcoin,
        Pickaxe,
   
        mybtc: 1,
        btcPrice: null,
        btcMin: 0,

        upgradePrice: 0

      }
    },
    methods: {
      getBitcoins() {
        var currentPrice = new XMLHttpRequest();
        currentPrice.open('GET', 'https://api.gdax.com/products/BTC-USD/book', true);
        currentPrice.onreadystatechange = function(){
          if(currentPrice.readyState == 4){
            let ticker = JSON.parse(currentPrice.responseText);
            let price = ticker.bids[0][0];
        document.getElementById('btc').innerHTML = "1 BTC = " + price + "$";
       };
      };
        currentPrice.send();
      }
    }
  }
</script>

1 Ответ

0 голосов
/ 26 августа 2018

Я думаю, это должно работать для ваших нужд.

created() {
    this.interval = setInterval(() => this.getBitcoins(), 1000);
},

Нет необходимости регистрировать это на созданном событии, вы можете зарегистрировать его другим способом или даже наблюдателем. Если вы сделаете это таким образом, вам придется как-то проверить, что он не был зарегистрирован, потому что это может привести к одновременному запуску нескольких циклов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...