1. 面向开发者的 Web 技术
  2. Web API
  3. WorkerGlobalScope
  4. WorkerGlobalScope:queueMicrotask() 方法

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

WorkerGlobalScope:queueMicrotask() 方法

基线 广泛可用

自 2020年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

备注: 此特性仅在 Web Worker 中可用。

WorkerGlobalScope 接口的 queueMicrotask() 方法,将微任务加入队列以在控制返回浏览器的事件循环之前的安全时间执行。

微任务是一个简短的函数,它将在当前任务完成其工作后运行,并且在执行上下文的控制权返回到浏览器的事件循环之前没有其他代码等待运行时运行。

它让你的代码在运行时不会干扰任何可能具有更高优先级的代码的运行,但在浏览器重新获得对执行上下文的控制之前,这可能取决于你需要完成的工作。你可以在我们的微任务指南中了解更多关于如何使用微任务以及选择这样做的原因。

微任务的重要性在于它能够以特定顺序异步执行任务。参见在 JavaScript 中通过 queueMicrotask() 使用微任务以了解更多信息。

微任务对于需要执行最后阶段的任务或其他在渲染之前的任务的库和框架特别有用。

语法

js
queueMicrotask(callback)

参数

function

当浏览器引擎确定可以安全调用你的代码时执行的 function。微任务(microtask)的执行顺序在所有进行中的任务(pending task)完成之后,在对浏览器的事件循环产生控制之前。

返回值

无(undefined)。

示例

js
queueMicrotask(() => {
 // 函数的内容
});

来自 queueMicrotask 的规范:

js
MyElement.prototype.loadData = function (url) {
 if (this._cache[url]) {
 queueMicrotask(() => {
 this._setData(this._cache[url]);
 this.dispatchEvent(new Event("load"));
 });
 } else {
 fetch(url)
 .then((res) => res.arrayBuffer())
 .then((data) => {
 this._cache[url] = data;
 this._setData(data);
 this.dispatchEvent(new Event("load"));
 });
 }
};

规范

规范
HTML
# microtask-queuing

浏览器兼容性

参见

帮助改进 MDN

了解如何参与贡献

此页面最后更新于 ,由 MDN 贡献者更新。

AltStyle によって変換されたページ (->オリジナル) /