New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

promise-queue

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

promise-queue - npm Package Compare versions

Comparing version 1.0.1 to 2.0.0

4

CHANGELOG.md

@@ -0,1 +1,5 @@

Version 2.0.0:
* It uses global `Promise` if possible.
* `configure()` accepts Promise constructor according to the spec.
Version 1.0.1:

@@ -2,0 +6,0 @@ * window.query -> window.Queue

63

lib/index.js

@@ -1,2 +0,2 @@

/* global define: true */
/* global define, Promise */
(function (root, factory) {

@@ -21,3 +21,3 @@ 'use strict';

*/
var promiseFactory = function () {
var LocalPromise = typeof Promise !== 'undefined' ? Promise : function () {
return {

@@ -30,5 +30,7 @@ then: function () {

var noop = function () {};
/**
* @param {*} value
* @returns {{then: Function}}
* @returns {LocalPromise}
*/

@@ -39,6 +41,6 @@ var resolveWith = function (value) {

}
var promise = promiseFactory();
(promise.resolve || promise.fulfill).call(promise, value);
return promise;
return new LocalPromise(function (resolve) {
resolve(value);
});
};

@@ -55,6 +57,2 @@

*
* Queue.configure(function () {
* return $.Deferred() || require('vow').promise();
* });
*
* var queue = new Queue(1);

@@ -87,6 +85,6 @@ *

* Defines promise promiseFactory
* @param {Function} promiseGenerator
* @param {Function} GlobalPromise
*/
Queue.configure = function (promiseGenerator) {
promiseFactory = promiseGenerator;
Queue.configure = function (GlobalPromise) {
LocalPromise = GlobalPromise;
};

@@ -96,21 +94,23 @@

* @param {Function} promiseGenerator
* @return {{then: Function}}
* @return {LocalPromise}
*/
Queue.prototype.add = function (promiseGenerator) {
var promise = promiseFactory();
// Do not queue to much promises
if (this.queue.length >= this.maxQueuedPromises) {
promise.reject(new Error('Queue limit reached'));
return promise;
}
var self = this;
return new LocalPromise(function (resolve, reject, notify) {
// Do not queue to much promises
if (self.queue.length >= self.maxQueuedPromises) {
reject(new Error('Queue limit reached'));
return;
}
// Add to queue
this.queue.push({
promiseGenerator: promiseGenerator,
promise: promise
// Add to queue
self.queue.push({
promiseGenerator: promiseGenerator,
resolve: resolve,
reject: reject,
notify: notify || noop
});
self._dequeue();
});
this._dequeue();
return promise;
};

@@ -134,3 +134,2 @@

}
var promise = item.promise;

@@ -145,3 +144,3 @@ this.pendingPromises++;

// It should pass values
(promise.resolve || promise.fulfill).call(promise, value);
item.resolve(value);
}, function (err) {

@@ -152,6 +151,6 @@ // It is not pending now

// It should not mask errors
promise.reject(err);
item.reject(err);
}, function (message) {
// It should pass notifications
promise.notify(message);
item.notify(message);
});

@@ -158,0 +157,0 @@

@@ -5,3 +5,3 @@ {

"name" : "promise-queue",
"version" : "1.0.1",
"version" : "2.0.0",
"contributors" : [

@@ -16,5 +16,2 @@ {

},
"dependencies" : {
},
"devDependencies" : {

@@ -27,3 +24,3 @@ "jshint": "2.1.3",

"sinon": "*",
"vow": "*",
"vow": "0.4.1",
"sinon-chai": "*",

@@ -30,0 +27,0 @@ "mocha-istanbul": "*",

@@ -1,10 +0,2 @@

# promise-queue
[![NPM Version](https://badge.fury.io/js/promise-queue.png)]
(https://npmjs.org/package/promise-queue)
[![Build Status](https://travis-ci.org/azproduction/promise-queue.png?branch=master)]
(https://travis-ci.org/azproduction/promise-queue)
[![Coverage Status](https://coveralls.io/repos/azproduction/promise-queue/badge.png?branch=master)]
(https://coveralls.io/r/azproduction/promise-queue)
[![Dependency Status](https://gemnasium.com/azproduction/promise-queue.png)]
(https://gemnasium.com/azproduction/promise-queue)
# promise-queue [![NPM Version](https://badge.fury.io/js/promise-queue.png)](https://npmjs.org/package/promise-queue) [![Build Status](https://travis-ci.org/azproduction/promise-queue.png?branch=master)](https://travis-ci.org/azproduction/promise-queue) [![Coverage Status](https://coveralls.io/repos/azproduction/promise-queue/badge.png?branch=master)](https://coveralls.io/r/azproduction/promise-queue) [![Dependency Status](https://gemnasium.com/azproduction/promise-queue.png)](https://gemnasium.com/azproduction/promise-queue)

@@ -23,7 +15,27 @@ Promise-based queue

### Configure attempt
By default `Queue` tries to use global Promises, but you can specify your own promises.
```js
Queue.configure(function () {
return $.Deferred() || require('vow').promise();
Queue.configure(require('vow').Promise);
```
Or use old-style promises approach:
```js
Queue.configure(function (handler) {
var dfd = $.Deferred();
try {
handler(dfd.resolve, dfd.reject, dfd.progress);
} catch (e) {
dfd.reject(e);
}
return dfd.promise();
});
```
### Queue example
```js
// max concurrent - 1

@@ -49,1 +61,3 @@ // max queue - Infinity

```
[Live example](http://jsfiddle.net/RVuEU/)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc