awesome-promises

Promise repository

A curated collection of resources and implementations for working with JavaScript Promises

A curated list of useful resources for JavaScript Promises

GitHub

2k stars
40 watching
124 forks
last commit: 11 months ago
Linked from 3 awesome lists


Awesome Promises / Resources, Blogs, and Books / For beginners

Promise Cookbook 1,614 over 7 years ago The why, what, and how. "A brief introduction [...] primarily aimed at frontend developers"
Promises for Asynchronous Programming Chapter from
You Don't Know JS: Promises 179,778 3 months ago Chapter from
JavaScript Promises: an Introduction Basics of JavaScript's native promise implementation
JavaScript with Promises from O'Reilly. Short and to-the-point. Uses native and bluebird
Promise it won't hurt 737 over 3 years ago An interactive workshop
ES6 Kata Promises Promises Katas :
ES6 Promises in Depth
An Incremental Tutorial on Promises An FAQ styled tutorial for beginners

Awesome Promises / Resources, Blogs, and Books / Deep Dive

Promise Fun 4,782 7 months ago @sindresorhus's notes, patterns, and solutions to common Promise problems
You're Missing the Point of Promises Promises are much more than callback aggregation, and that jQuery's implementation (prior to 3.0) isn't enough
We have a problem with promises "Many of us are using promises without really understanding them."
Promise anti-patterns 20,448 14 days ago Common misuses and how to avoid them
Promise anti-patterns (2) Another set of promises anti-patterns
Promise Ponderings, (Anti-)Patterns, and Apologies Promise behaviour demonstrated and explained by common questions and their answers
Javascript Promises...In Wicked Detail Recreate the promise implementation
Writing Promise-Using Specifications "This document gives guidance on how to write specifications that create, accept, or manipulate promises"
Async functions - making promises friendly

Awesome Promises / Resources, Blogs, and Books / References

Promises/A+ specification
caniuse promises
Fates and States 1,238 over 4 years ago Quick definitions of possible states
Promisees Promise visualization playground for the adventurous

Awesome Promises / Promises/A+ Implementations (ES6/ES2015 compatible) / Strict Implementations

pinkie 138 over 6 years ago Ponyfill. Node-oriented, but . small implementation
native-promise-only 720 about 5 years ago Polyfill. Browser and node-compatible
es6-promise 7,292 about 2 years ago Opt-in polyfill. A strict-spec subset of rsvp.js
lie 744 about 4 years ago Small, browserifyable with an opt-in polyfill

Awesome Promises / Promises/A+ Implementations (ES6/ES2015 compatible) / Implementations with extras

bluebird 20,448 14 days ago Fully featured, extremely performant. Long stack traces & generator/coroutine support
creed 274 over 6 years ago Hyper performant & full featured like Bluebird, but FP-oriented. Coroutines, generators, promises, ES2015 iterables, & fantasy-land spec
rsvp.js 3,612 about 1 year ago Lightweight with a few extras. Compatible down to IE6!
Q 14,932 about 1 year ago One of the original implementations. Long stack traces and other goodies
then/promise 2,580 about 1 year ago Small with , and additions
when.js 3,440 over 2 years ago Packed with control flow, functional, and utility methods

Awesome Promises / Promises/A+ Implementations (ES6/ES2015 compatible) / Fallbacks

native-or-bluebird Helps transition to completely native
pinkie-promise 117 over 6 years ago Use native, or fall back to . Great for node library authors
any-promise 179 about 6 years ago Loads the first available implementation. Safe for browserify

Awesome Promises / Convenience Utilities / sindresorhus's many Promise utilities (see notes)

delay 609 over 1 year ago Delay a promise a specified amount of time
pify 1,507 about 2 years ago Promisify ("denodify") a callback-style function
loud-rejection 281 almost 4 years ago Make unhandled promise rejections fail loudly instead of the default silent fail
hard-rejection 107 over 2 years ago Make unhandled promise rejections fail hard right away instead of the default silent fail
p-queue 3,470 23 days ago Promise queue with concurrency control
p-break 22 over 3 years ago Break out of a promise chain
p-lazy 266 24 days ago Create a lazy promise that defers execution until or is called
p-defer 73 8 months ago Create a deferred promise
p-if 60 over 3 years ago Conditional promise chains
p-tap 132 over 3 years ago Tap into a promise chain without affecting its value or state
p-map 1,292 3 months ago Map over promises concurrently
p-all 315 over 1 year ago Run promise-returning & async functions concurrently with optional limited concurrency
p-limit 2,037 27 days ago Run multiple promise-returning & async functions with limited concurrency
p-times 38 about 3 years ago Run promise-returning & async functions a specific number of times concurrently
p-catch-if 38 over 3 years ago Conditional promise catch handler
p-time 70 about 1 year ago Measure the time a promise takes to resolve
p-log 26 over 3 years ago Log the value/error of a promise
p-filter 72 11 months ago Filter promises concurrently
p-settle 90 about 1 year ago Settle promises concurrently and get their fulfillment value or rejection reason
p-memoize 396 over 1 year ago Memoize promise-returning & async functions
p-whilst 54 about 1 month ago Calls a function repeatedly while a condition returns true and then resolves the promise
p-throttle 443 3 months ago Throttle promise-returning & async functions
p-debounce 211 7 months ago Debounce promise-returning & async functions
p-retry 795 6 days ago Retry a promise-returning or async function
p-wait-for 155 over 1 year ago Wait for a condition to be true
p-timeout 274 about 1 month ago Timeout a promise after a specified amount of time
p-race 46 almost 2 years ago A better
p-try 57 about 3 years ago ponyfill - Starts a promise chain
p-finally 45 over 3 years ago ponyfill - Invoked when the promise is settled regardless of outcome
p-any 55 over 2 years ago Wait for any promise to be fulfilled
p-some 36 about 1 year ago Wait for a specified number of promises to be fulfilled
p-pipe 122 over 3 years ago Compose promise-returning & async functions into a reusable pipeline
p-each-series 50 over 2 years ago Iterate over promises serially
p-map-series 47 over 3 years ago Map over promises serially
p-reduce 68 almost 2 years ago Reduce a list of values using promises into a promise for a value
p-props 193 about 1 year ago Like but for and

Awesome Promises / Convenience Utilities / Others

promise-method 2 11 months ago Standalone . Turn a synchronously-returning method into a promise-returning one
is-promise 282 over 1 year ago Determine if something looks like a Promise
sprom 14 about 7 years ago Resolve when a stream ends. Optional buffering (be careful with this!)
task.js 1,629 over 5 years ago Write async functions in a blocking style using promises and generators. Like
co 11,880 almost 4 years ago Like and , but supports thunks too
lie-fs Promise wrappers for Node's FS API
promise-do-until 1 about 6 years ago Calls a function repeatedly until a condition returns true and then resolves the promise
promise-do-whilst 3 about 6 years ago Calls a function repeatedly while a condition returns true and then resolves the promise
promise-semaphore 29 about 8 years ago Push a set of work to be done in a configurable serial fashion
promise-nodeify 2 7 days ago Standalone method which calls a Node-style callback on resolution or rejection

Backlinks from these awesome lists:

More related projects: