簡體   English   中英

事件隊列和任務隊列之間有什么區別嗎?

[英]Is there any difference between event queue and task queue?

我對這兩個名字有些困惑,它們彼此相同嗎?

ECMAScript中沒有“事件隊列”,也沒有“事件循環”和“任務隊列”。

ES262規范僅說明:

8.4作業和作業隊列

Job是抽象操作,當當前沒有其他ECMAScript計算正在進行時,它將啟動ECMAScript計算。 可以將作業抽象操作定義為接受任意一組作業參數。 僅當沒有正在運行的執行上下文並且執行上下文堆棧為空時,才能啟動作業的執行。 PendingJob是對將來執行作業的請求

[...]

通過在作業隊列上使包含作業抽象操作名稱和任何必要參數值的PendingJob記錄入隊,來請求將來執行作業。

在ECMAScript中,只有兩個Job隊列,一個用於承諾解析,一個用於模塊/代碼的初始加載,但是該規范允許顯式定義更多隊列。

其他所有內容不是由ECMAScript本身定義的,而是由運行時實現或其他規范定義的。


您正在談論的“任務隊列”就是一個例子:

對於Webrowsers,它們被定義為針對瀏覽器特定事件的ES作業隊列。 本規范還使用術語“事件循環”(也是一個通用術語)來描述清空作業隊列的邏輯。

因此,可能使用“事件隊列”,因為

a)如果您說有一個“事件循環”清空了“一個事件隊列”,它簡化了多個作業隊列的概念。

b)人們從不閱讀規格。

c)該術語是創造的,從未指定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM