th
Version:
th.en - make it painless to adapt between callbacks and promises
35 lines (29 loc) • 588 B
JavaScript
var Q = require('q')
var next = null
function then (resolved, rejected) {
return next ? pop(resolved, rejected) : push()
}
function push() {
next = Q.defer()
return function (err, val) {
if (err) {
next.reject(err)
return
}
next.resolve(val)
}
}
function pop(resolved, rejected) {
var _next = next
next = null
return _next.promise.then(resolved, rejected)
}
then.callback = function callback(promise, cb) {
promise.then(function (val) {
cb(null, val)
}, function (err) {
cb(err)
})
}
module.exports = then
module.exports.en = then