User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome Promises

A curated list of useful resources for JavaScript Promises

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Oct. 20, 2021, 3:02 p.m.

Thank you wbinnssmith & contributors
View Topic on GitHub:
wbinnssmith/awesome-promises

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

For beginners

a brief introduction to using Promises in JavaScript

1.52K
178
4y 4m
MIT

A book series on JavaScript. @YDKJS on twitter.

133.88K
26.62K
9m
n/a

A Workshopper module that teaches you to use promises in javascript

681
216
3y 89d
n/a

from O'Reilly. Short and to-the-point. Uses native and bluebird.

Deep Dive

Promise packages, patterns, chat, and tutorials

3.7K
102
78d
CC0-1.0

Bluebird is a full featured promise library with unmatched performance.

19.81K
2.4K
36d
MIT

Promises are much more than callback aggregation, and that jQuery's implementation (prior to 3.0) isn't enough.

Many of us are using promises without really understanding them."

Promise behaviour demonstrated and explained by common questions and their answers.

This document gives guidance on how to write specifications that create, accept, or manipulate promises"

References

The ES6 promises spec, as per September 2013 TC39 meeting

1.02K
86
1y 5m
n/a

Promise visualization playground for the adventurous.

Strict Implementations

Itty bitty little widdle twinkie pinkie ES2015 Promise implementation

139
21
5y 8m
MIT

A polyfill for native ES6 Promises as close as possible (no extensions) to the strict spec definitions.

708
77
3y 5m
n/a

A polyfill for ES6-style Promises

7.12K
608
2y 4m
MIT

A basic but performant promise implementation.

732
62
3y 7m
MIT

Implementations with extras

Bluebird is a full featured promise library with unmatched performance.

19.81K
2.4K
36d
MIT

Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land

265
21
3y 5m
MIT

A lightweight library that provides tools for organizing asynchronous code

3.63K
270
1y 7m
MIT

A promise library for JavaScript

14.93K
1.24K
1y 5m
MIT

Bare bones Promises/A+ implementation

2.32K
284
1y 7m
MIT

A solid, fast Promises/A+ and when() implementation, plus other async goodies.

3.43K
408
4y 5m
n/a

Fallbacks

Promise ponyfill with pinkie

118
17
5y 21d
MIT

NOTE: You probably want native promises now

176
17
5y 85d
MIT

sindresorhus's many Promise utilities (

Delay a promise a specified amount of time

468
40
8m
MIT

Promisify a callback-style function

1.38K
85
9m
MIT

Make unhandled promise rejections fail loudly instead of the default silent fail

284
26
8m
MIT

Make unhandled promise rejections fail hard right away instead of the default silent fail

97
8
9m
MIT

Promise queue with concurrency control

1.43K
102
9m
MIT

Break out of a promise chain

13
3
9m
MIT

Create a lazy promise that defers execution until it's awaited or when .then() or .catch() is called

221
8
9m
MIT

Create a deferred promise

40
7
9m
MIT

Conditional promise chains

56
4
9m
MIT

Tap into a promise chain without affecting its value or state

128
8
9m
MIT

Map over promises concurrently

747
43
17d
MIT

Run promise-returning & async functions concurrently with optional limited concurrency

140
6
9m
MIT

Run multiple promise-returning & async functions with limited concurrency

570
43
10m
MIT

Run promise-returning & async functions a specific number of times concurrently

25
4
9m
MIT

Conditional promise catch handler

32
3
9m
MIT

Measure the time a promise takes to resolve

60
3
9m
MIT

Log the value/error of a promise

21
3
10m
MIT

Filter promises concurrently

48
5
9m
MIT

Settle promises concurrently and get their fulfillment value or rejection reason

66
8
9m
MIT

Memoize promise-returning & async functions

153
17
9m
MIT

While a condition returns true, calls a function repeatedly, and then resolves the promise

37
5
9m
MIT

Throttle promise-returning & async functions

181
13
8m
MIT

Debounce promise-returning & async functions

95
16
8m
MIT

Retry a promise-returning or async function

360
33
8m
MIT

Wait for a condition to be true

69
11
9m
MIT

Timeout a promise after a specified amount of time

153
14
9m
MIT

A better Promise.race()

33
3
9m
MIT

Start a promise chain

38
9
9m
MIT

Promise#finally() ponyfill - Invoked when the promise is settled regardless of outcome

45
5
9m
MIT

Wait for any promise to be fulfilled

45
5
9m
MIT

Wait for a specified number of promises to be fulfilled

27
6
9m
MIT

Compose promise-returning & async functions into a reusable pipeline

95
14
9m
MIT

Iterate over promises serially

36
4
9m
MIT

Map over promises serially

33
2
9m
MIT

Reduce a list of values using promises into a promise for a value

50
4
9m
MIT

Like Promise.all() but for Map and Object

93
7
8m
MIT

Others

Wraps a function and returns one that always returns a promise

2
0
6y 33d
n/a

Test whether an object looks like a promises-a+ promise

254
36
1y 5m
MIT

Convert node.js Streams into Promises

14
0
3y 11m
n/a

Beautiful concurrency for JavaScript

1.63K
85
7y 10m
n/a

The ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc)

11.42K
795
5y 4d
MIT

Calls a function repeatedly until a condition returns true and then resolves the promise

0
0
5y 11m
ISC

Calls a function repeatedly while a condition returns true and then resolves the promise

2
1
5y 5m
ISC

promise semaphore

28
7
5y 36d
n/a

Call a Node-style callback with the resolution value or rejection cause of a Promise without the common pitfalls.

1
0
8m
MIT

Promise wrappers for Node's FS API.