deferred-leveldown
Version:
A mock abstract-leveldown implementation that queues operations while a real abstract-leveldown instance is being opened
19 lines (14 loc) • 417 B
JavaScript
exports.getCallback = function (args, symbol, map) {
let callback = args[args.length - 1]
if (typeof callback !== 'function') {
const promise = new Promise((resolve, reject) => {
args.push(callback = function (err, ...results) {
if (err) reject(err)
else resolve(map ? map(...results) : results[0])
})
})
callback[symbol] = promise
}
return callback
}