Size: a a a

JavaScript Noobs — сообщество новичков

2021 April 11

DM

Dmitriy Matths in JavaScript Noobs — сообщество новичков
Попробую все просуммировать:

Код:
setTimeout(function innerTimeout() {
   console.log('delayed message');
}, 5000);
console.log('hi');

Для простоты возьмем, что этот код будет выполняться в chrome.
Выполнение кода:
 - в call stack попадает setTimeout.
 - setTimeout начинает выполняется как часть web apis. По истечению 5 секунд handler в setTimeout (внутренняя реализация) попадает в call queue.
 - call stack попадает console.log('hi').
 - call stack пуст, значит выполняем callback queue.
 - hander из setTimeout (внутренняя реализация) попадает в call stack. Далее innerTimeout попадает в call stack. Далее console.log('delayed message'); попадает в call stack. (до того как сработает это, появляется задержка равная той, чтобы была в setTimeout (внутреняя реализация)).
источник

V

Veli in JavaScript Noobs — сообщество новичков
- возможно еще до конца выполнения предыдущего пункта в call stack попадает console.log('hi').

не возможно, а точно
источник

V

Veli in JavaScript Noobs — сообщество новичков
консоль лог выполнится сразу же после выполнения сеттаймаута (той части, которая добавляет задачу в вебапи)
источник

V

Veli in JavaScript Noobs — сообщество новичков
любая синхронная операция выполнится раньше любой асинхронной
источник

V

Veli in JavaScript Noobs — сообщество новичков
даже если время выполнения асинхронной 0
источник

D

Delonge1 in JavaScript Noobs — сообщество новичков
Можете подсказать,нормально ли,если к меня запрос идет по setTimeout,то есть setTimeout ,внутри const {data} = await axios.get
..
обернуть это все дело промисом, чтобы управлять состоянием,когда данные пришли
источник

D

Delonge1 in JavaScript Noobs — сообщество новичков
pending,resolve
источник

ST

S T in JavaScript Noobs — сообщество новичков
благодарю всех за помощь, почитаю сейчас
источник

V

Veli in JavaScript Noobs — сообщество новичков
а вообще в целом да, норм
источник

DM

Dmitriy Matths in JavaScript Noobs — сообщество новичков
Понял, спасибо большое, теперь разобрался
источник

DM

Dmitriy Matths in JavaScript Noobs — сообщество новичков
Можно еще узнать откуда вы узнали про handler?
источник

j

jk in JavaScript Noobs — сообщество новичков
Краткий пример кода было бы неплохл.
источник

V

Veli in JavaScript Noobs — сообщество новичков
из колстека, который мне вывалился после вызова ошибки в сеттаймауте)
источник

V

Veli in JavaScript Noobs — сообщество новичков
источник

V

Veli in JavaScript Noobs — сообщество новичков
там на самом деле еще внутри куча вызовов всяких служебных
источник

V

Veli in JavaScript Noobs — сообщество новичков
но это чисто консольные штуки какие-то, по всей видимости
источник

V

Veli in JavaScript Noobs — сообщество новичков
я так понимаю setTimeout handler* означает какой-то генератор handler из setTimeout
источник

D

Delonge1 in JavaScript Noobs — сообщество новичков
setTimeout (async()=>{
 const {data} = await axios.get(url)
 setData(data)
},1000)
источник

j

jk in JavaScript Noobs — сообщество новичков
await внутри не async функции? Это работает?
источник

D

Delonge1 in JavaScript Noobs — сообщество новичков
Прошу прощения, забыл
источник