Skip to content

Repository files navigation

Run Async

npm

Utility method to run a function either synchronously or asynchronously using a series of common patterns. This is useful for library author accepting sync or async functions as parameter. runAsync will always run them as an async method, and normalize the multiple signature.

Installation

npm install --save run-async

Usage

Here's a simple example print the function results and three options a user can provide a function.

varrunAsync=require("run-async");varprintAfter=function(func){varcb=function(err,returnValue){console.log(returnValue);};runAsync(func,cb)(/* arguments for func */);};

Using this.async

printAfter(function(){vardone=this.async();setTimeout(function(){done(null,"done running with callback");},10);});

Returning a promise

printAfter(function(){returnnewPromise(function(resolve,reject){resolve("done running with promises");});});

Synchronous function

printAfter(function(){return"done running sync function";});

Custom done factory

varrunAsync=require("run-async");runAsync(function(){varcallback=this.customAsync();callback(null,a+b);},"customAsync")(1,2);

Passing context to async method

varrunAsync=require("run-async");runAsync(function(){assert(this.isBound);varcallback=this.async();callback(null,a+b);}).call({isBound: true},1,2);

runAsync.cb

runAsync.cb supports all the function types that runAsync does and additionally a traditional callback as the last argument signature:

varrunAsync=require("run-async");// IMPORTANT: The wrapped function must have a fixed number of parameters.runAsync.cb(function(a,b,cb){cb(null,a+b);},function(err,result){console.log(result);},)(1,2);

If your version of node support Promises natively (node >= 0.12), runAsync will return a promise. Example: runAsync(func)(arg1, arg2).then(cb)

Licence

Copyright (c) 2014 Simon Boudrias (twitter: @vaxilart)
Licensed under the MIT license.

About

Utility method to run function either synchronously or asynchronously using the common `this.async()` style.

Resources

Security policy

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages