@js-bits/xpromise

Extendable Promise

Usage no npm install needed!

<script type="module">
  import jsBitsXpromise from 'https://cdn.skypack.dev/@js-bits/xpromise';
</script>

README

Extendable Promise

Allows extension of JavaScript's standard, built-in Promise class and decouples an asynchronous operation that ties an outcome to a promise from the constructor.

Installation

Install with npm:

npm install @js-bits/xpromise

Install with yarn:

yarn add @js-bits/xpromise

Import where you need it:

import ExtendablePromise from '@js-bits/xpromise';

or require for CommonJS:

const ExtendablePromise = require('@js-bits/xpromise');

How to use

class MyPromise extends ExtendablePromise {
  // do whatever you need
}

const myPromise = new MyPromise((resolve, reject) => {
  console.log('executed', resolve, reject);
});
console.log(myPromise instanceof Promise); // true
myPromise.execute(); // 'executed' [Function (anonymous)] [Function (anonymous)]
myPromise.then(result => {
  console.log(result); // 123
});
myPromise.resolve(123);

Notes

  • Does not include any polyfills, which means that Internet Explorer is not supported.
  • Alternative solution