GithubHelp home page GithubHelp logo

javascript-forks / wbinnssmith.awesome-promises Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wbinnssmith/awesome-promises

0.0 2.0 0.0 81 KB

A curated list of useful resources for JavaScript Promises

License: Creative Commons Zero v1.0 Universal

wbinnssmith.awesome-promises's Introduction

Promises/A+ logo

Awesome Promises Awesome

A curated list of useful resources for JavaScript Promises

Inspired by the awesome list thing. Not to be confused with other awesome promises like "I promise you a million dollars" or "I promise you'll stay fit and never have to go to the gym again".

Table of Contents

Resources, Blogs, and Books

Promises/A+ Implementations (ES6/ES2015 compatible)

Strict Implementations

These implement no more or less than the es6 spec. They make great polyfills and are exceptionally compatible with native promises.

  • pinkie - Ponyfill. Node-oriented, but browserifyable. Extremely 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.

Implementations with extras

All of these provide more features than the language yet remain compatible. Node + Browsers for all.

  • bluebird - Fully featured, extremely performant. Long stack traces & generator/coroutine support.
  • 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 nodeify, denodify and done() additions.
  • when.js - Packed with control flow, functional, and utility methods.

Fallbacks

  • native-or-bluebird - Helps transition to completely native.
  • pinkie-promise - Use native, or fall back to pinkie. Great for node library authors.
  • any-promise - Loads the first available implementation. Safe for browserify.

Convenience Utilities

Native and strictly spec-compliant promises are awesome for compatibility, future-proofness, library authors, and browsers. However, libraries like bluebird patch goodies onto the Promise constructor and prototype. Solution? tiny modules of course!

  • pify - Promisify ("denodify") a callback-style function.

  • promise-every - Standalone bluebird.every. Execute one after the other sequentially.

  • promise-filter - Standalone bluebird.filter. Filter an array to a promise.

  • promise-map - Standalone bluebird.map. Map an array to a promise.

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

  • promise-props - Standalone implementation of bluebird's bluebird.props or rsvp's RSVP.hash

  • promise-reduce - Standalone bluebird.reduce. Reduce an array to a promise.

  • promise-some - Standalone bluebird.some. Check if an element passes the predicate, return a promise.

  • promise-try - Standalone bluebird.try. Execute a synchronously-returning function and return a promise.

  • 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 bluebird.coroutine.

  • co - Like task.js and bluebird.coroutine, but supports thunks too.

  • lie-fs - Promise wrappers for Node's FS API.

wbinnssmith.awesome-promises's People

Contributors

wbinnssmith avatar hemanth avatar

Watchers

James Cloos avatar Brenton House avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.