在某些情况下,我们可能需要将一个不需要对象实例的函数转换为Promise,以下是一种解决方法:
const { promisify } = require('util');
// 原始函数,不需要对象实例
function add(a, b, callback) {
const result = a + b;
callback(null, result);
}
// 使用 promisify 转换为 Promise
const promisifiedAdd = promisify(add);
// 使用 Promise 调用函数
promisifiedAdd(2, 3)
.then(result => {
console.log(result); // 输出 5
})
.catch(error => {
console.error(error);
});
在上面的示例中,我们使用Node.js内置的util
模块中的promisify
函数将add
函数转换为Promise。promisify
函数接受一个函数作为参数,并返回一个返回Promise的新函数。
然后,我们使用转换后的promisifiedAdd
函数来调用原始的add
函数。我们可以使用.then
方法处理成功的结果,或使用.catch
方法处理错误。