universalify
使一个基于回调或承诺的函数同时支持承诺和回调。
使用本机承诺实现。
安装
npm install universalify
API
universalify.fromCallback(fn)
接受一个基于回调函数的通用函数,并返回通用函数。
函数必须将回调函数作为签名调用的最后一个参数 (error, result)。 universalify 不支持使用三个或更多参数调用回调,并且不确保回调只被调用一次。
function callbackFn (n, cb) {
setTimeout(() => cb(null, n), 15)
}
const fn = universalify.fromCallback(callbackFn)
// Works with Promises:
fn('Hello World!')
.then(result => console.log(result)) // -> Hello World!
.catch(error => console.error(error))
// Works with Callbacks:
fn('Hi!', (error, result) => {
if (error) return console.error(error)
console.log(result)
// -> Hi!
})
universalify.fromPromise(fn)
接受一个基于承诺的函数进行通用化,并返回通用化后的函数。
函数必须返回一个有效的JS承诺。 universalify 不能确保返回有效的承诺。
function promiseFn (n) {
return new Promise(resolve => {
setTimeout(() => resolve(n), 15)
})
}
const fn = universalify.fromPromise(promiseFn)
// Works with Promises:
fn('Hello World!')
.then(result => console.log(result)) // -> Hello World!
.catch(error => console.error(error))
// Works with Callbacks:
fn('Hi!', (error, result) => {
if (error) return console.error(error)
console.log(result)
// -> Hi!
})
许可证
麻省理工学院