Как я могу автоматически обновить данные из API? - PullRequest
0 голосов
/ 21 февраля 2020

Я получаю данные из API, но не обновляется автоматически. Что я могу сделать? Как это может быть обновлено автоматически?

<div>
  <p id="pet">Lorem, ipsum dolor.</p>
</div>
var burl = "https://api.binance.com"
var query = "/api/v3/depth"
query += "?symbol=BTCUSDT&limit=5" //price
var url = burl + query;

var myrequest = new XMLHttpRequest();
myrequest.open("GET", url, true);

myrequest.onload = (function() {
  if (this.status == 200) {
    var dizi = new Array();
    dizi = JSON.parse(myrequest.responseText)
    var price = Number(dizi.asks[0][0]);
    console.log(typeof price)

    $("#pet").text(price)
  }
})
myrequest.send();

1 Ответ

0 голосов
/ 21 февраля 2020

Вы можете использовать функцию setTimeout () для регулярного вызова API, например, каждые 5 секунд. Сначала вам нужно переместить свой код в функцию, а затем вызвать функцию.

Lorem, ipsum dolor.
function getData(){
   var burl = "https://api.binance.com"
   var query = "/api/v3/depth"
   query += "?symbol=BTCUSDT&limit=5" //price
   var url = burl + query;

   var myrequest = new XMLHttpRequest();
   myrequest.open("GET", url, true);

   myrequest.onload = (function() {
      if (this.status == 200) {
         var dizi = new Array();
         dizi = JSON.parse(myrequest.responseText);
         var price = Number(dizi.asks[0][0]);
         console.log(typeof price);

         $("#pet").text(price);

         setTimeout(getData(), 5000); //5000 means 5 seconds
      }
   });
   myrequest.send();
}
getData();

Примечание. Я не использую setInterval (), который вызывает функцию снова и снова. Я использую settimeout () внутри успеха, чтобы убедиться, что следующий вызов вызывается только после завершения текущего вызова.

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