Skip to content

Creates a native ES6 Promise from a function which takes a node style Error-First callback.

License

Notifications You must be signed in to change notification settings

merisbahti/promiser.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

promiser.js

Create native ES6 promises from functions which take node-style callbacks.

How to use

require the library:

const createPromise = require('./promiser.js');

How to create promises from functions.

const fs = require('fs');

createPromise(fs.readFile)('test.js', 'utf8').
  then(() => console.log('SUCCESSFUL SUCCESS (function)')).
  catch(() => { throw new Error('FAILED SUCCESS (function)');});

createPromise(fs.readFile)('non-existent-file', 'utf8').
  then(() => { throw new Error('FAILED FAILURE (function)');}).
  catch(() => console.log('SUCCESSFUL FAILURE (function)'));

How to create promise from methods.

Assuming we have a class which has a prototype function, a, which takes a node-style callback:

class TestClass {
  constructor(successStr, failStr, success) {
    this.failStr = failStr;
    this.successStr = successStr;
    this.success = success;
  }
  a(errFirstCallBack) {
    if (this.success) {
      errFirstCallBack(null, this.successStr);
    } else {
      errFirstCallBack(this.failStr, null);
    }
  }
}

Instantiate the class, then create a promise from the method a by passing it to promiser, just don't forget to pass the context aswell!

const testClassSuccess = new TestClass('SUCCESSFUL SUCCESS (method)', 'FAILED SUCCESS (method)', true);

createPromise(testClassSuccess.a, testClassSuccess)().
  then(console.log).
  catch(console.error);

const testClassFailure = new TestClass('FAILED FAILURE (method)', 'SUCCESSFUL FAILURE (method)', false);

createPromise(testClassFailure.a, testClassFailure)().
  then(console.log).
  catch(console.error);

About

Creates a native ES6 Promise from a function which takes a node style Error-First callback.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published