Меня немного смущают эти два имени, они одинаковые друг с другом?
Есть ли разница между очередью событий и очередью задач?
Ответы (1)
В ECMAScript нет «очереди событий», также нет «цикла событий» и «очереди задач».
Спецификация ES262 говорит только:
8.4 Задания и очереди заданий
Задание — это абстрактная операция, которая инициирует вычисление ECMAScript, когда в данный момент не выполняется никакое другое вычисление ECMAScript. Абстрактная операция задания может быть определена для принятия произвольного набора параметров задания. Выполнение задания может быть инициировано только тогда, когда нет запущенного контекста выполнения и стек контекста выполнения пуст. PendingJob — это запрос на будущее выполнение задания.
[...]
Запрос на будущее выполнение задания выполняется путем помещения в очередь заданий записи PendingJob, которая включает имя абстрактной операции задания и любые необходимые значения аргументов.
В ECMAScript есть только две очереди заданий, одна для разрешения промисов и одна для начальной загрузки модулей/кода, однако спецификация позволяет явно определять больше очередей.
Все остальное не определяется самим ECMAScript, а определяется реализациями времени выполнения или другими спецификациями.
«Очереди задач», о которых вы говорили, являются примером этого:
Они определены для веб-браузеров как очереди заданий ES для конкретных браузеров. События. В этой Спецификации также используется термин «цикл событий» (который также является общепринятым термином) для описания логики, очищающей очереди заданий.
Поэтому «очередь событий», вероятно, используется, потому что
а) это упрощает концепцию нескольких очередей заданий, если вы говорите, что существует «один цикл событий», который очищает «одну очередь событий».
б) люди никогда не читают спецификации.
в) термин был придуман и никогда не уточнялся.