Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по асинхронности (https://javascript.ru/forum/misc/83322-vopros-po-asinkhronnosti.html)

AleBa 16.11.2021 19:29

Вопрос по асинхронности
 
Вложений: 1
Добрый день
В коде через апи получаю значения, мне нужно периодически делать запрос, сравнивать получаемые значения и получать оповещение, если данные меняются. Не могу понять почему значение не получается корректно сравнить? Просьба помочь

import axios from 'axios';

const sendRequest = async () => {
  const response = await axios.get('https://api.bittrex.com/v3/markets/BTC-USD/ticker');
  // console.log(response.data);
  console.log(response.data.lastTradeRate);
};

const fn = () => {
  const data = setTimeout(() => console.log(sendRequest()), 2000);
  const data2 = setTimeout(() => console.log(sendRequest()), 3000);

  setTimeout(() => console.log(data === data2), 5000);
};
fn();

рони 16.11.2021 19:38

AleBa,
data = setTimeout этот метод может вернуть только свой номерок, а не данные запроса.

voraa 16.11.2021 19:46

const sendRequest = async () => {
  const response = await axios.get('https://api.bittrex.com/v3/markets/BTC-USD/ticker');
  // console.log(response.data);
  console.log(response.data.lastTradeRate);
  return response.data.lastTradeRate;
};

const fn = () => {
  let data, data2
  setTimeout(async () =>{
        data = await sendRequest()
        console.log(data)
    }, 2000);
   setTimeout(async () =>{
        data2 = await sendRequest()
        console.log(data2)
    }, 3000);
 
  setTimeout(() => console.log(data === data2), 5000);
};

AleBa 16.11.2021 19:59

Спасибо


Часовой пояс GMT +3, время: 16:17.