该模块允许你在浏览器空闲时运行一个回调队列,以确保更高优先级的任务先执行。

安装

安装模块

npm install @wordpress/priority-queue --save

此软件包假定你的代码将运行在 ES2015+ 环境中。如果你使用的环境对此类语言特性和 API 的支持有限或没有支持,则应在代码中引入@wordpress/babel-preset-default 提供的 polyfill。

API

createQueue

创建一个上下文感知队列,该队列只执行给定上下文中的最后一个任务。

用法

import { createQueue } from '@wordpress/priority-queue';

const queue = createQueue();

// 上下文对象。
const ctx1 = {};
const ctx2 = {};

// 对于队列中的给定上下文,只执行最后一个回调。
queue.add( ctx1, () => console.log( 'This will be printed first' ) );
queue.add( ctx2, () => console.log( "This won't be printed" ) );
queue.add( ctx2, () => console.log( 'This will be printed second' ) );

返回值

  • WPPriorityQueue:包含 add、flush 和 reset 方法的队列对象。

为这个包做贡献

这是一个独立软件包,也是 Gutenberg 项目的一部分。该项目以 monorepo 形式组织,由多个自包含的软件包组成,每个软件包都有特定用途。此 monorepo 中的软件包发布到 npm,并被 WordPress 以及其他软件项目使用。

如需了解更多关于为该软件包或整个 Gutenberg 项目做贡献的信息,请阅读项目的主要贡献指南。