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承诺)。