Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ES6 Tools
  3. es6-promise

es6-promise

MITJavaScript

A lightweight polyfill for ES6 Promises, extracted from rsvp.js, to provide native Promise support in older environments.

GitHubGitHub
7.2k stars578 forks0 contributors

What is es6-promise?

ES6-Promise is a polyfill that implements the ES6 Promise specification, allowing developers to use modern asynchronous JavaScript patterns in environments that do not natively support Promises. It solves the problem of inconsistent or missing Promise implementations in older browsers and Node.js versions, ensuring reliable async operations. The library is a lightweight subset extracted from rsvp.js, focusing on core functionality without extra features.

Target Audience

JavaScript developers working on projects that need to support legacy browsers (like IE<9) or older Node.js environments, and those who require a minimal, standards-compliant promise polyfill.

Value Proposition

Developers choose ES6-Promise for its strict adherence to the ES6 standard, small size, and automatic polyfilling capability, which simplifies integration and ensures compatibility without the overhead of larger promise libraries.

Overview

A polyfill for ES6-style Promises

Use Cases

Best For

  • Adding Promise support to legacy web applications targeting IE<9
  • Ensuring consistent async behavior in mixed browser environments
  • Polyfilling Promises in older Node.js projects
  • Minimal promise implementations where extra features are unnecessary
  • Automatically patching global Promise objects in broken environments
  • Quick integration via CDN for prototyping or simple projects

Not Ideal For

  • Modern applications targeting only evergreen browsers with native Promise support
  • Projects requiring advanced promise features like cancellation or progress tracking
  • Teams using async/await extensively without additional transpilation tools
  • Developers seeking a full-featured promise library with extensive debugging utilities

Pros & Cons

Pros

ES6 Standards Compliance

Implements the complete ES6 Promise API, ensuring interoperability with native promises and strict adherence to the specification, as highlighted in the project's description.

Lightweight and Minimal

Extracted from rsvp.js as a subset, it has a small footprint with minified versions around 2.4 KB gzipped, focusing on core functionality without bloat.

Automatic Polyfilling

The auto version patches the global Promise object if missing or broken, simplifying integration in legacy environments without manual checks, as shown in the CDN and usage examples.

Broad Environment Support

Works across legacy browsers like IE<9 and older Node.js versions, making it essential for maintaining compatibility in mixed or outdated projects.

Easy Deployment Options

Available via CDN for quick inclusion and through npm/yarn for build integration, offering flexible methods to add promise support, as detailed in the downloads and installation sections.

Cons

Missing Advanced Features

As a subset of rsvp.js, it lacks features like promise cancellation, progress events, and enhanced debugging options available in fuller libraries, limiting its utility for complex async patterns.

IE<9 Syntax Quirks

In IE<9, methods such as 'catch' and 'finally' are reserved keywords, requiring awkward syntax workarounds or reliance on minifiers, adding complexity for legacy support.

No Async/Await Enablement

Only polyfills Promises; async/await syntax still requires additional transpilation (e.g., Babel) in environments without native support, which isn't addressed by this library.

Redundant in Modern Contexts

In projects targeting only modern browsers with native Promise support, including this polyfill introduces unnecessary code bloat and potential performance overhead.

Frequently Asked Questions

Quick Stats

Stars7,247
Forks578
Contributors0
Open Issues23
Last commit3 years ago
CreatedSince 2013

Tags

#polyfill#async#promises#nodejs#legacy-browsers#es6#javascript#compatibility

Included in

ES6 Tools4.0k
Auto-fetched 10 hours ago

Related Projects

core-jscore-js

Standard Library

Stars25,526
Forks1,678
Last commit11 hours ago
es6-shimes6-shim

ECMAScript 6 compatibility shims for legacy JS engines

Stars3,094
Forks372
Last commit21 days ago
ES6 shimES6 shim

JavaScript Polyfills, Shims and More

Stars1,351
Forks350
Last commit5 years ago
Object.assignObject.assign

ES2015 Object.assign() ponyfill

Stars917
Forks74
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub