Promise 在 Web Worker 中可用吗?

问题描述 投票:0回答:1

根据 Web Worker MDN 文档(https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers),Promise 不在可用列表中。 但是当我尝试在工作文件中调试并控制台记录 self 对象时,它里面有 Promise。 承诺截图

我尝试在 Web Worker 中运行

new Promise()
,并且它有效。我很困惑为什么我可以在 Web Worker 中调用 Promise

javascript promise web-worker
1个回答
0
投票

您引用的文章(Web Workers 可用的函数和类)首先定义了其范围:

... DOM 为工作人员提供了多种功能。本文提供了其中的列表。

换句话说,它涵盖了 Web API 可供 Web Workers 使用的功能。

Promise
不是 Web API 的一部分,而是 ECMAScript 语言规范的一部分。

虽然工作人员在另一个全局上下文中运行,但 ECMAScript 语言规范(自 ES 2015 起)要求全局上下文定义

Promise

在相关文章使用 Web Workers 中,Mozilla 贡献者写道:

worker 上下文由一个

DedicatedWorkerGlobalScope
对象表示...

关于 DedicatedWorkerGlobalScope 的链接文章有:

JavaScript 参考中列出了一些额外的全局函数、命名空间对象和构造函数,它们通常不与工作全局范围关联,但在其上可用。

链接的 JavaScript Reference 文章最终列出了所有内置组件,包括

Promise

© www.soinside.com 2019 - 2024. All rights reserved.