UNPKG

@wordpress/priority-queue

Version:
53 lines (31 loc) 2.06 kB
# Priority Queue This module allows you to run a queue of callback while on the browser's idle time making sure the higher-priority work is performed first. ## Installation Install the module ```bash npm install @wordpress/priority-queue --save ``` _This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for such language features and APIs, you should include [the polyfill shipped in `@wordpress/babel-preset-default`](https://github.com/WordPress/gutenberg/tree/HEAD/packages/babel-preset-default#polyfill) in your code._ ## API <!-- START TOKEN(Autogenerated API docs) --> ### createQueue Creates a context-aware queue that only executes the last task of a given context. _Usage_ ```js import { createQueue } from '@wordpress/priority-queue'; const queue = createQueue(); // Context objects. const ctx1 = {}; const ctx2 = {}; // For a given context in the queue, only the last callback is executed. 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' ) ); ``` _Returns_ - `WPPriorityQueue`: Queue object with `add`, `flush` and `reset` methods. <!-- END TOKEN(Autogenerated API docs) --> ## Contributing to this package This is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects. To find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md). <br /><br /><p align="center"><img src="https://s.w.org/style/images/codeispoetry.png?1" alt="Code is Poetry." /></p>