javascript - 澄清 node.js + promises 片段

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

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

最佳答案

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

关于javascript - 澄清 node.js + promises 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33276715/

相关文章:

javascript - 堆叠动态线图 d3.js

javascript - 来自 Node JS 的用户定义的 javascript 函数

javascript - 定义为参数的函数的闭包

swift - 我不明白这个类中的参数(Swift)

javascript - 如何在javascript中终止父函数的执行?

javascript - InDesign 中具有可变 URL 的 Web 链接按钮

javascript - JavaScript 中的动态数组

javascript - 捕捉 SVG 路径动画

javascript - 了解 Node RED 中的 this._(STRING) 调用

javascript - 通过 Node 将 .gif 保存到本地文件系统