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
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 |