[JS] > Event Loop (Часть 1) Flashcards

1
Q

Опишите схему работы Цикла событий

A

Цикл постоянно выполняеет задачи из стэка которые формируются от разбора функций помещеных в очередь
Если сэтк пуст мы берем следующую функцию из очереди, дробим ее на задачи для стэка после чего выполняем действия из стэка

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое Стек (Stack)?

A

Стек - это хранилище которое принимает задачу из очереди и делит ее на мелкие таски путем разбития внутриних колбеков

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое Куча (Heap)?

A

Куча — это большой неструктурированной области памяти (для чего ???)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое Очередь (Queue)?

A

Очередь(макро очередь) — это список задач которые будут исполнятся, каждая задача ассоциируется с функциями которые вызывали

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что такое Цикл событий (Event loop)?

A

Бесконечный цикл которые обрабатывает действия которые поступают в очередь

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Можно ли прервать задачу в цикле событий?

A

Нет, каждая задача выполняется полностью, прежде чем начнёт следующая.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Какие вы знаете минусы подхода цикла событий?

A

Минусы:
1. Мы не можем выполнять ресурсоемкие задачи так как это заставит всех ждать в очереди

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как влияет цикл событий на функ. setTimeout?

A

Функция задает не фиксированное, а минимальное время до исполнения действия.
Если очередь будет загружена то придется ждать ее освобождения

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Какая консоль выведит сообщение первее, в чем подвох setTimeout(func, 0)?

(function () {
setTimeout(() => { console.log(‘test A’) }, 0);
console.log(‘test B’);
})();

A

setTimeout, помещает задачу в конец очереди, сначала выполнится осн. функция которая поместит вывод текста “test A” в конец очереди, и выведет текст “test B”, после завершения этой функция, выведется “test A”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что такое макро очередь (macrotask queue)

A

Макро очередь это очередь которую использует цыкл событий для выполнения задач

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что такое микро очередь (microtask queue)

A

Очередь для исполнения асихнронных запросов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Какая будет последовательность алертов, и почему?

Code:
setTimeout(() => alert(“timeout”));
Promise.resolve().then(() => alert(“promise”));
alert(“code”);

A

Вывод будет:
1. code - синхронный код, сразу на вывод
2. promise - алерт попадает в список микро_задач
3. timeout - попадает в список макро задач

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Web API

A

Веб апи это браузерный интерфейс позволяющий:
1) управлять домом (DOM)
2)..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Для чего нужны Web Workers?

A

Это поралельные потоки которые выполняют вычеслительные задачи и не блочат DOM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly