Ash*_*are 9 javascript node.js promise bluebird
我正在使用Bluebird在Node.Js中进行承诺,并且想知道如何在履行承诺(完成)时使函数返回.我想要的行为是:
function getItem(){
functionReturningPromise.then(function(result){
//do some operation on result
return result;
});
}
Run Code Online (Sandbox Code Playgroud)
但是,由于承诺未在执行时完成,因此上述实现不会返回任何内容.围绕这个最好的解决方法是什么?
getItem的目的是修改functionReturningPromise返回的任何内容,然后返回它
geo*_*org 12
你不能,var value = someAsyncFunction()是不可能的(至少我们有发电机).Promise是病毒式的,一旦你在一个函数中使用Promise,它的调用者必须使用then调用者的调用者,等等直到你的主程序.所以,在调用的函数中getItem你必须改变它
item = getItem();
do something with item
Run Code Online (Sandbox Code Playgroud)
进入这个
getItem().then(function(item) {
do something with item
})
Run Code Online (Sandbox Code Playgroud)
并且也getItem应该返回一个Promise
function getItem(){
return functionReturningPromise().then(function(result){
//do some operation on result
return result;
});
}
Run Code Online (Sandbox Code Playgroud)
(理论上它也可以是回调,但我更愿意总是回报承诺).
| 归档时间: |
|
| 查看次数: |
4897 次 |
| 最近记录: |