澄清node.js + promises片段

时间:2015-10-22 08:38:46

标签: javascript node.js closures promise es6-promise

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的身体不应该返回一些内容,而不仅仅是致电getUserData(至少在实际代码中,而不是作为承诺演示练习)?

  2. 这个特殊的Promise也是封闭的吗?它似乎会在userId关闭,因为getUserDataAsync使用Promise创建并返回一个新的userId实例,但我想确定。

2 个答案:

答案 0 :(得分:4)

  

Promise的身体不应该返回一些东西,而不仅仅是调用getUserData(至少在实际代码中,而不是作为承诺演示练习)?

不,它不是必须的。实际上,从Promise构造函数返回值将不起作用。 只有resolvereject个功能才能实现Promise

  

这个特殊的Promise也是封闭的吗?它似乎会在userId关闭,因为getUserDataAsync使用Promise创建并返回一个新的userId实例,但我想确定。

是的,传递给Promise构造函数的函数将关闭userId

答案 1 :(得分:0)

  1. 不,它不应该返回一些内容,因为在那个时间点没有任何东西可以返回,因此你使用了一个承诺。

    < / LI>