29 lines
739 B
JavaScript
Raw Normal View History

'use strict'
var nextTick = require('./next-tick')
exports.fromCallback = function (callback, symbol) {
if (callback === undefined) {
var promise = new Promise(function (resolve, reject) {
callback = function (err, res) {
if (err) reject(err)
else resolve(res)
}
})
callback[symbol !== undefined ? symbol : 'promise'] = promise
} else if (typeof callback !== 'function') {
throw new TypeError('Callback must be a function')
}
return callback
}
exports.fromPromise = function (promise, callback) {
if (callback === undefined) return promise
promise
.then(function (res) { nextTick(() => callback(null, res)) })
.catch(function (err) { nextTick(() => callback(err)) })
}