Size: a a a

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

2020 July 17

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Вот типа список задач
источник

F

Foma in JavaScript Noobs — сообщество новичков
@Oracle_C прям как готовился к екзамену
источник

А

Александр in JavaScript Noobs — сообщество новичков
Ага, макро тогда - это задачи, которые мы выдергиваем из основного потока, например оборачиванием в async, да?
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Sm•ok 😈✔️
setTimeout (task1, 0)
Promise.resolve().then(task2)
Promise.resolve().then(task3)

setTimeout (task4, 0)
В начале выполнит таск 2/3, это очередь микро тасков.

Потом когда очередь опустеет, пойдет макро, в этот момент браузер (сеттаймаут ожидает браузер, а не жс, он потом кидает лишь колбек в макротаски)

Он выполнит одну задачу, первый тайм-аут и снова проверит микро и снова пойдет в макро
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
В промежутке между микро и макро идёт рендер страницы
источник

V

Vlad in JavaScript Noobs — сообщество новичков
Foma
как с собеса пришел
++
источник

А

Александр in JavaScript Noobs — сообщество новичков
Sm•ok 😈✔️
В промежутке между микро и макро идёт рендер страницы
Вроде бы понял, спасибо большое за такое развернутое пояснение, теперь лучше в голове представляю, как всё это работает.)
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Можешь спросить, если что не понял. В мире станет на 1 человека больше, кто знает как работает ивент луп
источник

F

Foma in JavaScript Noobs — сообщество новичков
Promise
.resolve()
.then(() => console.log(1))
.then(() => console.log(2))
.then(() => console.log(3));

setTimeout(()=>console.log(7))
console.log(0)
Promise
.resolve()
.then(() => console.log(4))
.then(() => console.log(5))
.then(() => console.log(6));
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Поэтому очень большие вычисления выносят в воркер. Ибо очень долгая задача заставляет браузер подумать, что ты попал в бесконечный цикл и даёт юзеру сообщение, что страница не отвечает
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Foma
Promise
.resolve()
.then(() => console.log(1))
.then(() => console.log(2))
.then(() => console.log(3));

setTimeout(()=>console.log(7))
console.log(0)
Promise
.resolve()
.then(() => console.log(4))
.then(() => console.log(5))
.then(() => console.log(6));
1 лог сразу выполнится
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Он синхронный
источник

F

Foma in JavaScript Noobs — сообщество новичков
Sm•ok 😈✔️
setTimeout (task1, 0)
Promise.resolve().then(task2)
Promise.resolve().then(task3)

setTimeout (task4, 0)
и сразу с подвохом)
источник

А

Александр in JavaScript Noobs — сообщество новичков
Вообще не совмем понял момент с промисами, которые сразу резолвятся. Зачем они в этом примере? Если написать
setTimeout(task1, 0)
task2
task3
setTimeout(task4, 0)
То это не то же самое будет?
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Потом промисы по очереди
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Александр
Вообще не совмем понял момент с промисами, которые сразу резолвятся. Зачем они в этом примере? Если написать
setTimeout(task1, 0)
task2
task3
setTimeout(task4, 0)
То это не то же самое будет?
То пример
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Просто резолв будет происходить когда ответ от сервера придет
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Дело времени
источник

А

Александр in JavaScript Noobs — сообщество новичков
Т.е. Задачи 2 и 3 становятся микро после того, как резолв происходит?
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Да
источник