Есть ли разница между очередью событий и очередью задач? - PullRequest
0 голосов
/ 04 марта 2019

Я немного смущен этими двумя именами, они одинаковы друг с другом?

1 Ответ

0 голосов
/ 04 марта 2019

В ECMAScript нет «очереди событий», также нет «цикла событий» и «очереди задач».

В спецификации ES262 говорится только:

8.4 Задания и очереди заданий

Задание - это абстрактная операция, которая инициирует вычисление ECMAScript, когда в данный момент не выполняется никаких других вычислений ECMAScript.Абстрактная операция Job может быть определена для принятия произвольного набора параметров работы.Выполнение задания можно инициировать только в том случае, если отсутствует запущенный контекст выполнения и стек контекста выполнения пуст.PendingJob - это запрос на будущее выполнение задания

[...]

Запрос на будущее выполнение задания выполняется путем постановки в очередь на выполнение задания PendingJobзапись, содержащая имя абстрактной операции Job и любые необходимые значения аргумента.

В ECMAScript есть только две очереди Job, одна для разрешения обещаний и одна для начальной загрузки модулей / кода, однакоspec позволяет явно определять больше очередей.

Все остальное не определяется самим ECMAScript, но определяется реализациями среды выполнения или другими спецификациями.


«Очереди задач»пример, о котором вы говорили:

Они определены для веб-браузеров как очереди заданий ES для определенных событий браузера.В данной Спецификации также используется термин «цикл событий» (который также является общим термином) для описания логики, которая очищает очереди заданий.

Поэтому «очередь событий», вероятно, используется, поскольку

a) это упрощает концепцию множественных очередей заданий, если вы говорите, что существует «один цикл событий», который очищает «одну очередь событий».

b) люди никогда не читают спецификации.

c) термин был придуман и никогда не указывался.

...