Promise Js:等到承诺实现
Promise Js: Wait till promise fulfilled
我正在为 Node.Js 中的承诺与 Bluebird 合作,并且想知道如何在承诺实现(完成)时创建函数 return。我的行为想要的是:
function getItem(){
functionReturningPromise.then(function(result){
//do some operation on result
return result;
});
}
但是,上述实现不会 return 任何东西,因为承诺在执行时尚未完成。最好的解决方法是什么?
getItem 的目的是修改任何函数ReturningPromise returns,然后return它
The purpose of getItem is to modify whatever functionReturningPromise returns, and then return it
那么,我想你可以简单地做
functionReturningPromise.then(getItem);
其中
function getItem(valueFromPromiseResolution){
//do some operation on valueFromPromiseResolution
return whatever;
}
你不能,var value = someAsyncFunction()
不可能(至少在我们有发电机之前)。 Promise 是病毒式的,一旦你在一个函数中使用 Promise,它的调用者必须使用 then
并且调用者的调用者也必须使用,等等直到你的主程序。因此,在调用 getItem
的函数中,您必须更改此
item = getItem();
do something with item
进入这个
getItem().then(function(item) {
do something with item
})
和getItem
也应该return一个Promise
function getItem(){
return functionReturningPromise().then(function(result){
//do some operation on result
return result;
});
}
(理论上也可以是回调,但我更喜欢总是return承诺)。
我正在为 Node.Js 中的承诺与 Bluebird 合作,并且想知道如何在承诺实现(完成)时创建函数 return。我的行为想要的是:
function getItem(){
functionReturningPromise.then(function(result){
//do some operation on result
return result;
});
}
但是,上述实现不会 return 任何东西,因为承诺在执行时尚未完成。最好的解决方法是什么?
getItem 的目的是修改任何函数ReturningPromise returns,然后return它
The purpose of getItem is to modify whatever functionReturningPromise returns, and then return it
那么,我想你可以简单地做
functionReturningPromise.then(getItem);
其中
function getItem(valueFromPromiseResolution){
//do some operation on valueFromPromiseResolution
return whatever;
}
你不能,var value = someAsyncFunction()
不可能(至少在我们有发电机之前)。 Promise 是病毒式的,一旦你在一个函数中使用 Promise,它的调用者必须使用 then
并且调用者的调用者也必须使用,等等直到你的主程序。因此,在调用 getItem
的函数中,您必须更改此
item = getItem();
do something with item
进入这个
getItem().then(function(item) {
do something with item
})
和getItem
也应该return一个Promise
function getItem(){
return functionReturningPromise().then(function(result){
//do some operation on result
return result;
});
}
(理论上也可以是回调,但我更喜欢总是return承诺)。