Javascript 回调可以与承诺一起使用吗?在node.js中是这样还是那样?

Javascript 回调可以与承诺一起使用吗?在node.js中是这样还是那样?,javascript,node.js,Javascript,Node.js,我对NodeJs是新手。我读了之后发现了一个问题: 回调可以与承诺一起使用吗?或者是一种方式还是另一种方式 我搜索了答案,但不清楚。那么答案是什么呢 谢谢。你总是可以把回访变成承诺,让它与你的其他承诺顺利配合。让我们假设asyncFunc是一个接受回调的函数。您可以通过以下方式将其转化为承诺: new Promise((resolve, reject) => { asyncFunc((error, result) => { if (error) {

我对NodeJs是新手。我读了之后发现了一个问题:

回调可以与承诺一起使用吗?或者是一种方式还是另一种方式

我搜索了答案,但不清楚。那么答案是什么呢


谢谢。

你总是可以把回访变成承诺,让它与你的其他承诺顺利配合。让我们假设
asyncFunc
是一个接受回调的函数。您可以通过以下方式将其转化为承诺:

new Promise((resolve, reject) => {
    asyncFunc((error, result) => {
        if (error) {
            reject(error);
        } else {
            resolve(result);
        }
    }
});
大多数实现承诺的库都为上述代码构造提供了快捷方式:

Promise.promisify(asyncFunc);

当然可以,只要调用回调作为
链的一部分,然后
/
.catch
链即可。当您要重构旧代码,但不想更改整个库时,这是有意义的。最后,承诺只是一种更干净的回调方式。从技术上讲,承诺使用回调。