@Sun2790

Не видит переменную js. Как получить?

В самом низу не могу получить данные из переменной. Как записать данные из dd в vv и вывести в консоль?
<script>
const ws = new WebSocket("wss://stream.binance.com:9443/ws/xrpusdt@bookTicker");
ws.onmessage = (event) => {
   const obj = JSON.parse(event.data);
   if (obj.s=='XRPUSDT'){
  // console.log(`Symbol: ${obj.s}`);
  // console.log(`Best ask: ${obj.a}`);
  // console.log(`Best bid: ${obj.b}`);
}
let dd = obj.s;
 console.log(dd); // видим данные
}
/// как вывести данные снизу?
 let vv = dd;
 console.log(vv); // ЗДЕСЬ НЕ ВИДИМ ДАННЫЕ
</script>
  • Вопрос задан
  • 181 просмотр
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ваш код работать не будет.
Анонимная функция, в которой вы задаёте значение переменной dd будет вызвана только при наступлении события message, то есть при приходе сообщения от WS-сервера. А это сообщение может прийти как сразу же, так и через час.
Кроме того, даже при приходе события, вызов функции будет помещён в очередь и выполнится только после завершения выполнения текущего кода, то есть когда console.log(vv) уже отработает.
Ответ написан
Комментировать
muscimolus
@muscimolus
const ws = new WebSocket("wss://stream.binance.com:9443/ws/xrpusdt@bookTicker")
let dd = null

ws.onmessage = (event) => {
    const obj = JSON.parse(event.data)
    if(obj.s=='XRPUSDT'){ /* ... */ }
    dd = obj.s
    console.log(dd)
}

let vv = dd
console.log(vv)


Область видимости переменных
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
27 апр. 2024, в 17:31
150000 руб./за проект
27 апр. 2024, в 16:39
1000 руб./в час
27 апр. 2024, в 16:38
30000 руб./за проект