nebula-queue - Vaadin Add-on Directory
Serialize activities between web components using a FIFO queue.
**[ This description is mirrored from README.md at [github.com/arsnebula/nebula-queue](https://github.com//arsnebula/nebula-queue/blob/v2.0.1/README.md) on 2019-05-10 ]**
[](https://www.webcomponents.org/element/arsnebula/nebula-button)
[](https://www.polymer-project.org)
[](https://saucelabs.com/beta/builds/f020cd219c4b498fb5ffbb696e962881)
[](https://gitter.im/arsnebula/webcomponents)
[](https://www.patreon.com/arsnebula)
# \
Serialize activity between web components using a FIFO queue.
## Installation
```sh
$ bower install -S arsnebula/nebula-queue
```
## Getting Started
Import the element.
```html
```
Add and configure a `` element to provide access to queue events and methods. Each queue is identified by a unique `name`. You can have as many queues as you want by adding multiple instances of the element to a template. The `length` property wil be updated automatically as requests are added and removed from the queue. If the `length` is zero, the queue is empty. The `changed` event can be used to listen for `push` and `pop` changes to the queue. The event does not bubble.
```html
```
Add a callback to the queue using the `queue` method. Once the request reaches the top of the queue, the callback will be invoked with a single `done` argument. The `done` argument is a function that must be called to remove the request from the queue.
```js
this.$.alerts.queue(function(done) {
try {
alert('My alert is ready!')
}
finally {
done()
}
})
```
WARNING: Failing to call the `done` method will block the queue from processing any further requests. Ensure you add error handling to your callback to ensure done is called property.
*For more information, see the API documentation.*
## Contributing
We welcome and appreciate feedback from the community. Here are a few ways that you can show your appreciation for this package:
* Give us a **Star on GitHub** from either [webcomponents.org](https://www.webcomponents.org/element/arsnebula/nebula-element-mixin) or directly on [GitHub](https://github.com/arsnebula/nebula-element-mixin).
* Submit a feature request, or a defect report on the [Issues List](https://www.webcomponents.org/element/arsnebula/nebula-element-mixin/issues).
* Become a [Patreon](https://www.patreon.com/arsnebula). It takes a lot of time and effort to develop, document, test and support the elements in our [Nebula Essentials](https://www.webcomponents.org/collection/arsnebula/nebula-essentials) collection. Your financial contribution will help ensure that our entire collection continues to grow and improve.
If you are a developer, and are interested in making a code contribution, consider opening an issue first to describe the change, and discuss with the core repository maintainers. Once you are ready, prepare a pull request:
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D
## Change Log
See [CHANGELOG](/CHANGELOG.md)
## License
See [LICENSE](/LICENSE.md)
View on GitHubGitHub Homepage
Documentation
Issue tracker
License
Online Demo
nebula-queue version 1.0.0
### Dependencies
* polymer#Polymer/polymer#^1.7.1
nebula-queue version 1.0.1
### Dependencies
* polymer#Polymer/polymer#^1.7.1
nebula-queue version 1.0.2
### Dependencies
* polymer#Polymer/polymer#^1.7.1
nebula-queue version 2.0.0
### Dependencies
* polymer#Polymer/polymer#>=2.0.0-rc.1 <3.0
* nebula-element-mixin#arsnebula/nebula-element-mixin#^2.0.0
nebula-queue version 2.0.1
### Dependencies
* polymer#Polymer/polymer#^2.0.0
* nebula-element-mixin#arsnebula/nebula-element-mixin#^2.0.0