Promise Cookbook
The why, what, and how. "A brief introduction [...] primarily aimed at frontend developers".
A curated list of useful resources for JavaScript Promises
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
The why, what, and how. "A brief introduction [...] primarily aimed at frontend developers".
Chapter from Exploring ES6
Chapter from You Don't Know JS: Async & Performance
Basics of JavaScript's native promise implementation.
from O'Reilly. Short and to-the-point. Uses native and bluebird.
An interactive nodeschool workshop
Promises Katas : Basics
An FAQ styled tutorial for beginners.
@sindresorhus's notes, patterns, and solutions to common Promise problems
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."
Common misuses and how to avoid them.
Another set of promises anti-patterns
Promise behaviour demonstrated and explained by common questions and their answers.
Recreate the promise implementation
"This document gives guidance on how to write specifications that create, accept, or manipulate promises"
Compare feature implementations and limitations across desktop & mobile browsers.
Quick definitions of possible states.
Promise visualization playground for the adventurous.
Ponyfill. Node-oriented, but browserifyable. Extremely small implementation.
Polyfill. Browser and node-compatible.
Opt-in polyfill. A strict-spec subset of rsvp.js.
Small, browserifyable with an opt-in polyfill.
Common misuses and how to avoid them.
Hyper performant & full featured like Bluebird, but FP-oriented. Coroutines, generators, promises, ES2015 iterables, & fantasy-land spec.
Lightweight with a few extras. Compatible down to IE6!
One of the original implementations. Long stack traces and other goodies.
Small with nodeify, denodify and done() additions.
Packed with control flow, functional, and utility methods.
Helps transition to completely native.
Use native, or fall back to pinkie. Great for node library authors.
Loads the first available implementation. Safe for browserify.
Make unhandled promise rejections fail loudly instead of the default silent fail.
Make unhandled promise rejections fail hard right away instead of the default silent fail
Promise queue with concurrency control
Break out of a promise chain
Create a lazy promise that defers execution until .then() or .catch() is called
Create a deferred promise
Conditional promise chains
Tap into a promise chain without affecting its value or state
Run promise-returning & async functions concurrently with optional limited concurrency
Run multiple promise-returning & async functions with limited concurrency
Run promise-returning & async functions a specific number of times concurrently
Conditional promise catch handler
Measure the time a promise takes to resolve
Log the value/error of a promise
Filter promises concurrently
Settle promises concurrently and get their fulfillment value or rejection reason
Memoize promise-returning & async functions
Calls a function repeatedly while a condition returns true and then resolves the promise
Throttle promise-returning & async functions
Debounce promise-returning & async functions
Retry a promise-returning or async function
Wait for a condition to be true
Timeout a promise after a specified amount of time
A better Promise.race()
Promise#try() ponyfill - Starts a promise chain
Promise#finally() ponyfill - Invoked when the promise is settled regardless of outcome
Wait for any promise to be fulfilled
Wait for a specified number of promises to be fulfilled
Compose promise-returning & async functions into a reusable pipeline
Iterate over promises serially
Map over promises serially
Reduce a list of values using promises into a promise for a value
Like Promise.all() but for Map and Object
Standalone bluebird.method. Turn a synchronously-returning method into a promise-returning one.
Determine if something looks like a Promise.
Resolve when a stream ends. Optional buffering (be careful with this!)
Write async functions in a blocking style using promises and generators. Like bluebird.coroutine.
Like task.js and bluebird.coroutine, but supports thunks too.
Promise wrappers for Node's FS API.
Calls a function repeatedly until a condition returns true and then resolves the promise.
Calls a function repeatedly while a condition returns true and then resolves the promise.
Push a set of work to be done in a configurable serial fashion
Standalone nodeify method which calls a Node-style callback on resolution or rejection.
rust-unofficial/awesome-rust
A curated list of Rust code and resources.
jaywcjlove/awesome-mac
This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.
vinta/awesome-python
The definitive list that answers "I want to do X in Python, which tool should I use?"
fffaraz/awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
avelino/awesome-go
A curated list of awesome Go frameworks, libraries and software
ziadoz/awesome-php
A curated list of amazingly awesome PHP libraries, resources and shiny things.