澄清 node.js + promises 片段

Clarification of node.js + promises snippet

How do I convert an existing callback API to promises? 的接受答案有这个例子:

function getUserDataAsync(userId){
    return new Promise(function(resolve,reject){
         getUserData(userId,resolve,reject);
    });
}

问题:

  1. Promise return 的主体不应该是什么,而不仅仅是调用 getUserData (至少在实际代码中,而不是作为 promise 演示练习)?

  2. 这个 Promise 也是闭包吗?它似乎关闭了 userId,因为 getUserDataAsync 使用 userId 创建并 return 了一个新的 Promise 实例,但我想确定。

  1. 不,它不应该 return 东西,因为 return 在那个时间点 没有任何东西,因此你使用承诺的原因。

  2. 是。

Shouldn't the body of Promise return something, not just call getUserData (at least in practical code, not as promise demonstration exercise)?

不,不必。事实上,从 Promise 构造函数返回一个值不会有任何效果。 只有resolvereject函数可以实现Promise

Is this particular Promise also a closure? It seems like it closes over userId, as getUserDataAsync creates and returns a new Promise instance using userId, but I want to be sure.

是的,传递给 Promise 构造函数的函数在 userId 之后关闭。