instapromise

2.0.7 • Public • Published

Instapromise Circle CI

Promisify Node-style asynchronous functions by putting a .promise after them (or after the object for methods).

npm package

If you use this library then if you put .promise after a Node-style asynchronous function, it will turn it into a function that returns a promise instead of taking a callback.

import 'instapromise';
import fs from 'fs';
 
let p = fs.readFile.promise('/tmp/hello', 'utf8');
p.then(console.log);

The original function is available as a property on the promise-generating function (.___instapromiseOriginalFunction___).

If you want to promisify methods, use .promise after the object and before the method name.

import 'instapromise';
import fs from 'fs';
 
let p = fs.promise.readFile('/tmp/hello', 'utf8');
p.then(console.log);

Changelog

2.0.7

Non-enumerable properties like class methods are now promisified. Functions with names that would cause syntax errors (like default) are supported.

2.0.3

The ___instapromiseOriginalFunction___ property is now non-enumerable so it doesn't show up when serializing functions whose promise property has been accessed before.

2.0.0

The Promise polyfill is no longer provided. 1.x provided a polyfill for environments without a native Promise implementation, but in general, most environments you'll use now provide Promise.

Credits

This code is based on the proxying code used in fibrous.

Dependents (8)

Package Sidebar

Install

npm i instapromise

Weekly Downloads

483

Version

2.0.7

License

MIT

Last publish

Collaborators

  • ccheever
  • exponent
  • ide