Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2021, 19:29
Интересующийся
Отправить личное сообщение для AleBa Посмотреть профиль Найти все сообщения от AleBa
 
Регистрация: 13.06.2020
Сообщений: 18

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

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();
Изображения:
Тип файла: jpg Screenshot_2.jpg (8.7 Кб, 1 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2021, 19:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

AleBa,
data = setTimeout этот метод может вернуть только свой номерок, а не данные запроса.
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2021, 19:46
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,712

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);
};
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2021, 19:59
Интересующийся
Отправить личное сообщение для AleBa Посмотреть профиль Найти все сообщения от AleBa
 
Регистрация: 13.06.2020
Сообщений: 18

Спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
Я как ответить на вопрос - есть ли жизнь на других планетах? TicTac Оффтопик 5 28.04.2011 04:29
Вопрос авторизации. 0931454574 Серверные языки и технологии 8 12.04.2011 11:09
Вопрос на миллион. Ajax и идентификация по адресной строке. 0931454574 AJAX и COMET 5 31.03.2011 11:54
Вопрос по замыканиям Goodfella Общие вопросы Javascript 20 09.03.2011 01:21