How do I convert an existing callback API to promises?的已接受答案有这个例子:
function getUserDataAsync(userId){
return new Promise(function(resolve,reject){
getUserData(userId,resolve,reject);
});
}
问题:
Promise
的身体不应该返回一些内容,而不仅仅是致电getUserData
(至少在实际代码中,而不是作为承诺演示练习)?
这个特殊的Promise
也是封闭的吗?它似乎会在userId
关闭,因为getUserDataAsync
使用Promise
创建并返回一个新的userId
实例,但我想确定。
答案 0 :(得分:4)
Promise的身体不应该返回一些东西,而不仅仅是调用
getUserData
(至少在实际代码中,而不是作为承诺演示练习)?
不,它不是必须的。实际上,从Promise
构造函数返回值将不起作用。 只有resolve
和reject
个功能才能实现Promise
。
这个特殊的
Promise
也是封闭的吗?它似乎会在userId
关闭,因为getUserDataAsync
使用Promise
创建并返回一个新的userId
实例,但我想确定。
是的,传递给Promise
构造函数的函数将关闭userId
。
答案 1 :(得分:0)
不,它不应该返回一些内容,因为在那个时间点没有任何东西可以返回,因此你使用了一个承诺。
< / LI>是