node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


call-me-maybe Build Status

Let your JS API users either give you a callback or receive a promise.


var maybe = require("call-me-maybe")
module.exports = function asyncFunc (cb) {
  return maybe(cb, new Promise(function(resolve, reject) {
    // ... 


maybe(cb, promise)

If the callback cb is truthy, returns undefined and will call cb when promise is settled. The parameters passed to cb are standard error-first:

  • If promise is fulfilled, then it is called with the result of the promise: cb(null, result)
  • If promise is rejected, then it is called with the rejection error: cb(err)

If cb is falsey, then promise is retuned.