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: Feb. 28, 2021, 3: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.52K
178
3y 8m
MIT

A book series on JavaScript. @YDKJS on twitter.

133.88K
26.62K
60d
n/a

A Workshopper module that teaches you to use promises in javascript

681
216
2y 7m
n/a

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

Deep Dive

Promise packages, patterns, chat, and tutorials

3.28K
89
50d
CC0-1.0

Bluebird is a full featured promise library with unmatched performance.

19.54K
2.37K
5m
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
9m
n/a

Promise visualization playground for the adventurous.

Strict Implementations

Itty bitty little widdle twinkie pinkie ES2015 Promise implementation

139
21
5y 29d
MIT

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

708
77
2y 9m
n/a

A polyfill for ES6-style Promises

7.12K
608
1y 8m
MIT

A basic but performant promise implementation.

732
62
2y 12m
MIT

Implementations with extras

Bluebird is a full featured promise library with unmatched performance.

19.54K
2.37K
5m
MIT

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

265
21
2y 10m
MIT

A lightweight library that provides tools for organizing asynchronous code

3.63K
270
11m
MIT

A promise library for JavaScript

14.93K
1.24K
9m
MIT

Bare bones Promises/A+ implementation

2.32K
284
12m
MIT

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

3.43K
408
3y 9m
n/a

Fallbacks

Promise ponyfill with pinkie

118
17
4y 5m
MIT

NOTE: You probably want native promises now

176
17
4y 7m
MIT

sindresorhus's many Promise utilities (

Delay a promise a specified amount of time

441
40
27d
MIT

Promisify a callback-style function

1.34K
84
58d
MIT

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

278
25
35d
MIT

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

97
8
58d
MIT

Promise queue with concurrency control

1.43K
102
51d
MIT

Break out of a promise chain

13
3
58d
MIT

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

221
8
49d
MIT

Create a deferred promise

40
7
58d
MIT

Conditional promise chains

56
4
57d
MIT

Tap into a promise chain without affecting its value or state

128
8
58d
MIT

Map over promises concurrently

632
32
58d
MIT

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

140
6
58d
MIT

Run multiple promise-returning & async functions with limited concurrency

570
43
95d
MIT

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

25
4
58d
MIT

Conditional promise catch handler

32
3
58d
MIT

Measure the time a promise takes to resolve

60
3
58d
MIT

Log the value/error of a promise

21
3
70d
MIT

Filter promises concurrently

48
5
59d
MIT

Settle promises concurrently and get their fulfillment value or rejection reason

66
8
58d
MIT

Memoize promise-returning & async functions

153
17
58d
MIT

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

37
5
58d
MIT

Throttle promise-returning & async functions

181
13
7d
MIT

Debounce promise-returning & async functions

95
16
27d
MIT

Retry a promise-returning or async function

360
33
13d
MIT

Wait for a condition to be true

69
11
58d
MIT

Timeout a promise after a specified amount of time

153
14
64d
MIT

A better Promise.race()

33
3
58d
MIT

Start a promise chain

38
9
57d
MIT

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

45
5
58d
MIT

Wait for any promise to be fulfilled

45
5
58d
MIT

Wait for a specified number of promises to be fulfilled

27
6
59d
MIT

Compose promise-returning & async functions into a reusable pipeline

95
14
58d
MIT

Iterate over promises serially

36
4
59d
MIT

Map over promises serially

33
2
59d
MIT

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

50
4
58d
MIT

Like Promise.all() but for Map and Object

93
7
35d
MIT

Others

Wraps a function and returns one that always returns a promise

2
0
5y 5m
n/a

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

254
36
10m
MIT

Convert node.js Streams into Promises

14
0
3y 105d
n/a

Beautiful concurrency for JavaScript

1.63K
85
7y 94d
n/a

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

11.42K
795
4y 4m
MIT

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

0
0
5y 97d
ISC

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

2
1
4y 9m
ISC

promise semaphore

28
7
4y 5m
n/a

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

1
0
18d
MIT

Promise wrappers for Node's FS API.