--- /dev/null
+"use strict"
+
+var next = (global.process && process.nextTick) || global.setImmediate || function (f) {
+ setTimeout(f, 0)
+}
+
+module.exports = function maybe (cb, promise) {
+ if (cb) {
+ promise
+ .then(function (result) {
+ next(function () { cb(null, result) })
+ }, function (err) {
+ next(function () { cb(err) })
+ })
+ return undefined
+ }
+ else {
+ return promise
+ }
+}