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: Dec. 3, 2020, 12:01 a.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.51K
176
3y 5m
MIT

A book series on JavaScript. @YDKJS on twitter.

130.26K
25.99K
119d
n/a

A Workshopper module that teaches you to use promises in javascript

676
210
2y 4m
n/a

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

Deep Dive

Promise packages, patterns, chat, and tutorials

3.19K
87
11d
CC0-1.0

Bluebird is a full featured promise library with unmatched performance.

19.41K
2.35K
82d
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
6m
n/a

Promise visualization playground for the adventurous.

Strict Implementations

Itty bitty little widdle twinkie pinkie ES2015 Promise implementation

140
19
4y 10m
MIT

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

696
76
2y 6m
n/a

A polyfill for ES6-style Promises

7.08K
596
1y 5m
MIT

A basic but performant promise implementation.

729
58
2y 9m
MIT

Implementations with extras

Bluebird is a full featured promise library with unmatched performance.

19.41K
2.35K
82d
MIT

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

266
22
2y 7m
MIT

A lightweight library that provides tools for organizing asynchronous code

3.63K
270
8m
MIT

A promise library for JavaScript

14.9K
1.25K
6m
MIT

Bare bones Promises/A+ implementation

2.29K
275
9m
MIT

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

3.42K
410
3y 6m
n/a

Fallbacks

Promise ponyfill with pinkie

118
16
4y 65d
MIT

NOTE: You probably want native promises now

177
17
4y 4m
MIT

sindresorhus's many Promise utilities (

Delay a promise a specified amount of time

416
40
38d
MIT

Promisify a callback-style function

1.33K
84
6m
MIT

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

275
24
43d
MIT

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

96
7
43d
MIT

Promise queue with concurrency control

1.32K
98
53d
MIT

Break out of a promise chain

13
2
3y 31d
MIT

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

219
6
1y 6m
MIT

Create a deferred promise

37
6
1y 85d
MIT

Conditional promise chains

53
3
1y 8m
MIT

Tap into a promise chain without affecting its value or state

128
7
1y 6m
MIT

Map over promises concurrently

603
28
5m
MIT

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

132
5
8m
MIT

Run multiple promise-returning & async functions with limited concurrency

521
42
8d
MIT

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

25
3
7m
MIT

Conditional promise catch handler

31
2
1y 8m
MIT

Measure the time a promise takes to resolve

60
2
1y 8m
MIT

Log the value/error of a promise

21
2
1y 8m
MIT

Filter promises concurrently

47
4
1y 6m
MIT

Settle promises concurrently and get their fulfillment value or rejection reason

64
6
6m
MIT

Memoize promise-returning & async functions

147
16
70d
MIT

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

37
4
1y 8m
MIT

Throttle promise-returning & async functions

167
9
4m
MIT

Debounce promise-returning & async functions

83
11
1y 8m
MIT

Retry a promise-returning or async function

343
30
9m
MIT

Wait for a condition to be true

62
10
1y 8m
MIT

Timeout a promise after a specified amount of time

147
13
1y 78d
MIT

A better Promise.race()

32
2
1y 8m
MIT

Start a promise chain

35
8
1y 85d
MIT

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

45
4
1y 5m
MIT

Wait for any promise to be fulfilled

44
4
43d
MIT

Wait for a specified number of promises to be fulfilled

27
6
7m
MIT

Compose promise-returning & async functions into a reusable pipeline

89
13
6m
MIT

Iterate over promises serially

35
4
15d
MIT

Map over promises serially

33
1
1y 85d
MIT

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

49
3
1y 85d
MIT

Like Promise.all() but for Map and Object

93
6
21d
MIT

Others

Wraps a function and returns one that always returns a promise

2
0
5y 77d
n/a

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

252
31
7m
MIT

Convert node.js Streams into Promises

14
0
3y 18d
n/a

Beautiful concurrency for JavaScript

1.63K
85
7y 7d
n/a

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

11.35K
791
4y 48d
MIT

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

0
0
5y 10d
ISC

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

2
1
4y 6m
ISC

promise semaphore

28
7
4y 80d
n/a

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

1
0
4m
MIT

Promise wrappers for Node's FS API.