【问题标题】:Clarification of node.js + promises snippet澄清 node.js + promises 片段
【发布时间】:2016-01-21 11:27:34
【问题描述】:

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(至少在实际代码中,而不是作为 promise 演示练习)?

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

【问题讨论】:

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


【解决方案1】:

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

不,没必要。事实上,从Promise 构造函数返回一个值是没有效果的。 只有resolvereject 函数可以实现Promise

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

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

【讨论】:

    【解决方案2】:
    1. 不,它不应该返回任何东西,因为在那个时间点没有任何东西可以返回,这就是你使用 Promise 的原因。

    2. 是的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 2013-06-05
      • 2013-07-30
      • 1970-01-01
      相关资源
      最近更新 更多