Window:queueMicrotask() 方法
Window
接口的 queueMicrotask()
方法,将微任务加入队列以在控制返回浏览器的事件循环之前的安全时间执行。
微任务是一个简短的函数,它将在当前任务完成其工作后运行,并且在执行上下文的控制权返回到浏览器的事件循环之前没有其他代码等待运行时运行。
它让你的代码在运行时不会干扰任何可能具有更高优先级的代码的运行,但在浏览器重新获得对执行上下文的控制之前,这可能取决于你需要完成的工作。你可以在我们的微任务指南中了解更多关于如何使用微任务以及选择这样做的原因。
微任务的重要性在于它能够以特定顺序异步执行任务。参见在 JavaScript 中通过 queueMicrotask()
使用微任务以了解更多信息。
微任务对于需要执行最后阶段的任务或其他在渲染之前的任务的库和框架特别有用。
语法
js
queueMicrotask(callback)
参数
返回值
无(undefined
)。
示例
js
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"));
});
}
};
规范
Specification |
---|
HTML Standard # microtask-queuing |
浏览器兼容性
BCD tables only load in the browser