deferize

0.1.0 • Public • Published

Build Status Coverage Status Dependency Status devDependency Status Gittip

NPM

deferize

deferize will turn any nodish callback-based function into a jQuery Promise.

It seems I always need something like this in my projects as of late so I figured others probably do too and I decided to extract it into its own tiny module.

Install

npm install deferize --save

Usage

The most basic use of deferize is by feeding it a function.

var fs = require( "fs" );
var open = deferize( fs.open );

What you get is a new function that is no longer callback-based but returns a promise instead.

For instance, you'd use the previous example as follows:

open( "path/to/my/file", "r" ).done( function( fd ) {
    // we have the file descriptor
} ).fail( function( error ) {
    // something went wrong
} );

No Error Argument

Sometimes a callback doesn't get an error as its first argument. In that case, you should call deferize.noerror:

var fs = require( "fs" );
var exists = deferize.noerror( fs.exists );

The underlying promise will be resolved if the first argument is trueish and rejected otherwise:

exists( "path/to/my/file" ).done( function( flag ) {
    // file does exist, flag === true
} ).fail( function( flag ) {
    // file does not exist, flag === false
} );

Synchronous Functions

For those rare situations where you need to deferize a synchronous function, you can use deferize.sync:

var divide = deferize.sync( function( a, b ) {
    return a / b;
} );
 
divide( 50, 5 ).done( function( result ) {
    result === 10; // true
} );

License

Copyright (c) 2012 - 2014 Julian Aubourg Licensed under the MIT license.

Readme

Keywords

none

Package Sidebar

Install

npm i deferize

Weekly Downloads

4

Version

0.1.0

License

none

Last publish

Collaborators

  • jaubourg