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: almost 2 years ago
Linked from 3 awesome lists
Awesome Promises / Resources, Blogs, and Books / For beginners | |||
| Promise Cookbook | 1,615 | over 8 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 | 180,122 | about 1 year 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 4 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,807 | over 1 year 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 | about 1 year 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,237 | over 5 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 | about 7 years ago | Ponyfill. Node-oriented, but . small implementation |
| native-promise-only | 717 | about 6 years ago | Polyfill. Browser and node-compatible |
| es6-promise | 7,290 | almost 3 years ago | Opt-in polyfill. A strict-spec subset of rsvp.js |
| lie | 743 | about 5 years ago | Small, browserifyable with an opt-in polyfill |
Awesome Promises / Promises/A+ Implementations (ES6/ES2015 compatible) / Implementations with extras | |||
| bluebird | 20,448 | about 1 year ago | Fully featured, extremely performant. Long stack traces & generator/coroutine support |
| creed | 274 | over 7 years ago | Hyper performant & full featured like Bluebird, but FP-oriented. Coroutines, generators, promises, ES2015 iterables, & fantasy-land spec |
| rsvp.js | 3,608 | about 2 years ago | Lightweight with a few extras. Compatible down to IE6! |
| Q | 14,926 | about 2 years ago | One of the original implementations. Long stack traces and other goodies |
| then/promise | 2,584 | about 2 years ago | Small with , and additions |
| when.js | 3,439 | over 3 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 7 years ago | Use native, or fall back to . Great for node library authors |
| any-promise | 180 | about 7 years ago | Loads the first available implementation. Safe for browserify |
Awesome Promises / Convenience Utilities / sindresorhus's many Promise utilities (see notes) | |||
| delay | 609 | over 2 years ago | Delay a promise a specified amount of time |
| pify | 1,505 | about 3 years ago | Promisify ("denodify") a callback-style function |
| loud-rejection | 281 | almost 5 years ago | Make unhandled promise rejections fail loudly instead of the default silent fail |
| hard-rejection | 107 | over 3 years ago | Make unhandled promise rejections fail hard right away instead of the default silent fail |
| p-queue | 3,506 | about 1 year ago | Promise queue with concurrency control |
| p-break | 22 | over 4 years ago | Break out of a promise chain |
| p-lazy | 269 | about 1 year ago | Create a lazy promise that defers execution until or is called |
| p-defer | 77 | over 1 year ago | Create a deferred promise |
| p-if | 60 | over 4 years ago | Conditional promise chains |
| p-tap | 132 | over 4 years ago | Tap into a promise chain without affecting its value or state |
| p-map | 1,376 | 11 months ago | Map over promises concurrently |
| p-all | 319 | over 2 years ago | Run promise-returning & async functions concurrently with optional limited concurrency |
| p-limit | 2,083 | about 1 year ago | Run multiple promise-returning & async functions with limited concurrency |
| p-times | 39 | about 4 years ago | Run promise-returning & async functions a specific number of times concurrently |
| p-catch-if | 38 | over 4 years ago | Conditional promise catch handler |
| p-time | 70 | about 2 years ago | Measure the time a promise takes to resolve |
| p-log | 26 | over 4 years ago | Log the value/error of a promise |
| p-filter | 75 | almost 2 years ago | Filter promises concurrently |
| p-settle | 90 | about 2 years ago | Settle promises concurrently and get their fulfillment value or rejection reason |
| p-memoize | 397 | over 2 years ago | Memoize promise-returning & async functions |
| p-whilst | 54 | about 1 year ago | Calls a function repeatedly while a condition returns true and then resolves the promise |
| p-throttle | 447 | 12 months ago | Throttle promise-returning & async functions |
| p-debounce | 211 | over 1 year ago | Debounce promise-returning & async functions |
| p-retry | 808 | 12 months ago | Retry a promise-returning or async function |
| p-wait-for | 155 | over 2 years ago | Wait for a condition to be true |
| p-timeout | 275 | about 1 year ago | Timeout a promise after a specified amount of time |
| p-race | 46 | almost 3 years ago | A better |
| p-try | 58 | about 4 years ago | ponyfill - Starts a promise chain |
| p-finally | 45 | over 4 years ago | ponyfill - Invoked when the promise is settled regardless of outcome |
| p-any | 55 | over 3 years ago | Wait for any promise to be fulfilled |
| p-some | 36 | about 2 years ago | Wait for a specified number of promises to be fulfilled |
| p-pipe | 122 | over 4 years ago | Compose promise-returning & async functions into a reusable pipeline |
| p-each-series | 50 | over 3 years ago | Iterate over promises serially |
| p-map-series | 48 | over 4 years ago | Map over promises serially |
| p-reduce | 68 | almost 3 years ago | Reduce a list of values using promises into a promise for a value |
| p-props | 194 | about 2 years ago | Like but for and |
Awesome Promises / Convenience Utilities / Others | |||
| promise-method | 2 | almost 2 years ago | Standalone . Turn a synchronously-returning method into a promise-returning one |
| is-promise | 281 | over 2 years ago | Determine if something looks like a Promise |
| sprom | 14 | almost 8 years ago | Resolve when a stream ends. Optional buffering (be careful with this!) |
| task.js | 1,630 | over 6 years ago | Write async functions in a blocking style using promises and generators. Like |
| co | 11,895 | almost 5 years ago | Like and , but supports thunks too |
| lie-fs | Promise wrappers for Node's FS API | ||
| promise-do-until | 1 | about 7 years ago | Calls a function repeatedly until a condition returns true and then resolves the promise |
| promise-do-whilst | 3 | about 7 years ago | Calls a function repeatedly while a condition returns true and then resolves the promise |
| promise-semaphore | 29 | about 9 years ago | Push a set of work to be done in a configurable serial fashion |
| promise-nodeify | 2 | 12 months ago | Standalone method which calls a Node-style callback on resolution or rejection |