I need to call the method getBitcoins() every second.
Tried: I tried just taking it out the methods and putting it under the line
import Pickaxe from '../assets/pickaxe.png'
and then using setInterval to call it every second, but then I can't access the data variable btcPrice inside getBitcoins().
So I need a way to call the getBitcoins() from the methods functions every second, just as it is in the code below.
<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>
To call a JavaScript function every 5 seconds continuously, we call setInterval with the function that we want to run and the interval between runs. const interval = setInterval(() => { // ... }, 5000); clearInterval(interval); to call setInterval with the callback we want to run and 5000 millisecond period.
This example demonstrates how do I run a method every 10 seconds in android. Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main. xml.
I think this should work for your needs.
created() {
this.interval = setInterval(() => this.getBitcoins(), 1000);
},
It's not necessary to register this on the created event, you can register it on other method, or even on a watcher. If you do it that way, you'll have to check somehow that it hasn't been registered, cause it may cause multiple loops to run simultaneously.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With