澄清 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);
});
}
问题:
Promise
return 的主体不应该是什么,而不仅仅是调用 getUserData
(至少在实际代码中,而不是作为 promise 演示练习)?
这个 Promise
也是闭包吗?它似乎关闭了 userId
,因为 getUserDataAsync
使用 userId
创建并 return 了一个新的 Promise
实例,但我想确定。
不,它不应该 return 东西,因为 return 在那个时间点 没有任何东西,因此你使用承诺的原因。
是。
Shouldn't the body of Promise return something, not just call getUserData
(at least in practical code, not as promise demonstration exercise)?
不,不必。事实上,从 Promise
构造函数返回一个值不会有任何效果。 只有resolve
和reject
函数可以实现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
之后关闭。
How do I convert an existing callback API to promises? 的接受答案有这个例子:
function getUserDataAsync(userId){
return new Promise(function(resolve,reject){
getUserData(userId,resolve,reject);
});
}
问题:
Promise
return 的主体不应该是什么,而不仅仅是调用getUserData
(至少在实际代码中,而不是作为 promise 演示练习)?这个
Promise
也是闭包吗?它似乎关闭了userId
,因为getUserDataAsync
使用userId
创建并 return 了一个新的Promise
实例,但我想确定。
不,它不应该 return 东西,因为 return 在那个时间点 没有任何东西,因此你使用承诺的原因。
是。
Shouldn't the body of Promise return something, not just call
getUserData
(at least in practical code, not as promise demonstration exercise)?
不,不必。事实上,从 Promise
构造函数返回一个值不会有任何效果。 只有resolve
和reject
函数可以实现Promise
。
Is this particular
Promise
also a closure? It seems like it closes overuserId
, asgetUserDataAsync
creates and returns a newPromise
instance usinguserId
, but I want to be sure.
是的,传递给 Promise
构造函数的函数在 userId
之后关闭。