Let your JS API users either give you a callback or receive a promise.
varmaybe=require("call-me-maybe")module.exports=functionasyncFunc(cb){returnmaybe(cb,newPromise(function(resolve,reject){// ...}))}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
promiseis fulfilled, then it is called with the result of the promise:cb(null, result) - If
promiseis rejected, then it is called with the rejection error:cb(err)
If cb is falsey, then promise is returned.