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: May 7, 2021, 6: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
3y 10m
MIT

A book series on JavaScript. @YDKJS on twitter.

133.88K
26.62K
4m
n/a

A Workshopper module that teaches you to use promises in javascript

681
216
2y 9m
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
119d
CC0-1.0

Bluebird is a full featured promise library with unmatched performance.

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

Promise visualization playground for the adventurous.

Strict Implementations

Itty bitty little widdle twinkie pinkie ES2015 Promise implementation

139
21
5y 98d
MIT

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

708
77
2y 11m
n/a

A polyfill for ES6-style Promises

7.12K
608
1y 10m
MIT

A basic but performant promise implementation.

732
62
3y 64d
MIT

Implementations with extras

Bluebird is a full featured promise library with unmatched performance.

19.54K
2.37K
7m
MIT

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

265
21
3y 13d
MIT

A lightweight library that provides tools for organizing asynchronous code

3.63K
270
1y 51d
MIT

A promise library for JavaScript

14.93K
1.24K
11m
MIT

Bare bones Promises/A+ implementation

2.32K
284
1y 67d
MIT

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

3.43K
408
3y 11m
n/a

Fallbacks

Promise ponyfill with pinkie

118
17
4y 7m
MIT

NOTE: You probably want native promises now

176
17
4y 9m
MIT

sindresorhus's many Promise utilities (

Delay a promise a specified amount of time

441
40
96d
MIT

Promisify a callback-style function

1.34K
84
4m
MIT

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

278
25
104d
MIT

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

97
8
4m
MIT

Promise queue with concurrency control

1.43K
102
4m
MIT

Break out of a promise chain

13
3
4m
MIT

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

221
8
118d
MIT

Create a deferred promise

40
7
4m
MIT

Conditional promise chains

56
4
4m
MIT

Tap into a promise chain without affecting its value or state

128
8
4m
MIT

Map over promises concurrently

632
32
4m
MIT

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

140
6
4m
MIT

Run multiple promise-returning & async functions with limited concurrency

570
43
5m
MIT

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

25
4
4m
MIT

Conditional promise catch handler

32
3
4m
MIT

Measure the time a promise takes to resolve

60
3
4m
MIT

Log the value/error of a promise

21
3
4m
MIT

Filter promises concurrently

48
5
4m
MIT

Settle promises concurrently and get their fulfillment value or rejection reason

66
8
4m
MIT

Memoize promise-returning & async functions

153
17
4m
MIT

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

37
5
4m
MIT

Throttle promise-returning & async functions

181
13
76d
MIT

Debounce promise-returning & async functions

95
16
96d
MIT

Retry a promise-returning or async function

360
33
82d
MIT

Wait for a condition to be true

69
11
4m
MIT

Timeout a promise after a specified amount of time

153
14
4m
MIT

A better Promise.race()

33
3
4m
MIT

Start a promise chain

38
9
4m
MIT

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

45
5
4m
MIT

Wait for any promise to be fulfilled

45
5
4m
MIT

Wait for a specified number of promises to be fulfilled

27
6
4m
MIT

Compose promise-returning & async functions into a reusable pipeline

95
14
4m
MIT

Iterate over promises serially

36
4
4m
MIT

Map over promises serially

33
2
4m
MIT

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

50
4
4m
MIT

Like Promise.all() but for Map and Object

93
7
104d
MIT

Others

Wraps a function and returns one that always returns a promise

2
0
5y 7m
n/a

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

254
36
1y 5d
MIT

Convert node.js Streams into Promises

14
0
3y 5m
n/a

Beautiful concurrency for JavaScript

1.63K
85
7y 5m
n/a

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

11.42K
795
4y 6m
MIT

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

0
0
5y 5m
ISC

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

2
1
4y 11m
ISC

promise semaphore

28
7
4y 7m
n/a

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

1
0
87d
MIT

Promise wrappers for Node's FS API.