Awesome Lists

awesome-promises

by wbinnssmith

awesome listpushed almost 3 years ago

A curated list of useful resources for JavaScript Promises

AI summary

Promise repository

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

stars
1.6K
forks
124
watching
40
awesome lists
3
entries
81
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/wbinnssmith/awesome-promises/links.svg)](https://awesome.facts.dev/awesome/wbinnssmith/awesome-promises)
HTML
<a href="https://awesome.facts.dev/awesome/wbinnssmith/awesome-promises"><img src="https://awesome.facts.dev/shield/wbinnssmith/awesome-promises/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/wbinnssmith/awesome-promises/links.svg

What's in the list

81 links in 8 sections, with live GitHub stats.activeno commit in 2y

Resources, Blogs, and Books / For beginners

Resources, Blogs, and Books / Deep Dive

Resources, Blogs, and Books / References

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

  • pinkie

    Ponyfill. Node-oriented, but . small implementation

  • native-promise-only

    Polyfill. Browser and node-compatible

  • es6-promise

    Opt-in polyfill. A strict-spec subset of rsvp.js

  • lie

    Small, browserifyable with an opt-in polyfill

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

  • bluebird

    Fully featured, extremely performant. Long stack traces & generator/coroutine support

  • creed

    Hyper performant & full featured like Bluebird, but FP-oriented. Coroutines, generators, promises, ES2015 iterables, & fantasy-land spec

  • rsvp.js

    Lightweight with a few extras. Compatible down to IE6!

  • Q

    One of the original implementations. Long stack traces and other goodies

  • then/promise

    Small with , and additions

  • when.js

    Packed with control flow, functional, and utility methods

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

  • native-or-bluebird

    Helps transition to completely native

  • pinkie-promise

    Use native, or fall back to . Great for node library authors

  • any-promise

    Loads the first available implementation. Safe for browserify

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

  • delay

    Delay a promise a specified amount of time

  • pify

    Promisify ("denodify") a callback-style function

  • loud-rejection

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

  • hard-rejection

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

  • p-queue

    Promise queue with concurrency control

  • p-break

    Break out of a promise chain

  • p-lazy

    Create a lazy promise that defers execution until or is called

  • p-defer

    Create a deferred promise

  • p-if

    Conditional promise chains

  • p-tap

    Tap into a promise chain without affecting its value or state

  • p-map

    Map over promises concurrently

  • p-all

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

  • p-limit

    Run multiple promise-returning & async functions with limited concurrency

  • p-times

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

  • p-catch-if

    Conditional promise catch handler

  • p-time

    Measure the time a promise takes to resolve

  • p-log

    Log the value/error of a promise

  • p-filter

    Filter promises concurrently

  • p-settle

    Settle promises concurrently and get their fulfillment value or rejection reason

  • p-memoize

    Memoize promise-returning & async functions

  • p-whilst

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

  • p-throttle

    Throttle promise-returning & async functions

  • p-debounce

    Debounce promise-returning & async functions

  • p-retry

    Retry a promise-returning or async function

  • p-wait-for

    Wait for a condition to be true

  • p-timeout

    Timeout a promise after a specified amount of time

  • p-race

    A better

  • p-try

    ponyfill - Starts a promise chain

  • p-finally

    ponyfill - Invoked when the promise is settled regardless of outcome

  • p-any

    Wait for any promise to be fulfilled

  • p-some

    Wait for a specified number of promises to be fulfilled

  • p-pipe

    Compose promise-returning & async functions into a reusable pipeline

  • p-each-series

    Iterate over promises serially

  • p-map-series

    Map over promises serially

  • p-reduce

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

  • p-props

    Like but for and

Convenience Utilities / Others

  • promise-method

    Standalone . Turn a synchronously-returning method into a promise-returning one

  • is-promise

    Determine if something looks like a Promise

  • sprom

    Resolve when a stream ends. Optional buffering (be careful with this!)

  • task.js

    Write async functions in a blocking style using promises and generators. Like

  • co

    Like and , but supports thunks too

  • lie-fs

    Promise wrappers for Node's FS API

  • promise-do-until

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

  • promise-do-whilst

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

  • promise-semaphore

    Push a set of work to be done in a configurable serial fashion

  • promise-nodeify

    Standalone method which calls a Node-style callback on resolution or rejection

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.