Socket
Socket
Sign inDemoInstall

race-as-promised

Package Overview
Dependencies
0
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.1 to 0.0.2

q.js

48

index.js

@@ -40,2 +40,28 @@ /*

function addRaceContender(contender) {
const deferreds = new Set();
const record = {deferreds, settled: false};
// This call to `then` happens once for the lifetime of the value.
Promise.resolve(contender).then(
(value) => {
for (const {resolve} of deferreds) {
resolve(value);
}
deferreds.clear();
record.settled = true;
},
(err) => {
for (const {reject} of deferreds) {
reject(err);
}
deferreds.clear();
record.settled = true;
},
);
return record
}
// Keys are the values passed to race, values are a record of data containing a

@@ -61,23 +87,5 @@ // set of deferreds and whether the value has settled.

if (record === undefined) {
record = {deferreds: new Set([deferred]), settled: false};
record = addRaceContender(contender);
record.deferreds.add(deferred);
wm.set(contender, record);
// This call to `then` happens once for the lifetime of the value.
Promise.resolve(contender).then(
(value) => {
for (const {resolve} of record.deferreds) {
resolve(value);
}
record.deferreds.clear();
record.settled = true;
},
(err) => {
for (const {reject} of record.deferreds) {
reject(err);
}
record.deferreds.clear();
record.settled = true;
},
);
} else if (record.settled) {

@@ -84,0 +92,0 @@ // If the value has settled, it is safe to call

{
"name": "race-as-promised",
"version": "0.0.1",
"version": "0.0.2",
"description": "Alternate Promise.race() implementation which doesn't leak memory, courtesy Brian Kim (https://github.com/brainkim)",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -33,4 +33,8 @@ # race-as-promised

An additional issue in the original code has been found and fixed by
[Dan Bornstein](https://github.com/danfuzz), whose efforts are
likewise appreciated.
## License
[The Unlicense](https://spdx.org/licenses/Unlicense.html)
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc