我有这样的功能:
function top() {
//promise1
ParentPromise({
...some code here...
}).then(function() {
//promise2
ChildPromise({
..some code here...
}).then(function(response) {
var result = response.result.items;
});
});
};
我需要以这种方式返回结果值:
var myresult = start();
我该怎么做?谢谢
原文由 Valerio Marzulli 发布,翻译遵循 CC BY-SA 4.0 许可协议
promises 的定义是你不能按字面意义将
result
分配给myresult
。 _但是_,您可以为调用者做出myresult
直接解析为result
的承诺,但是使用了许多承诺来实现这一点。基本思想是,在上面块中的每个函数内部,您应该return
链中的下一个 Promise。例如:最后,调用
top()
的代码将不知道或不关心使用 1、2 或 12 个链式承诺来获取result
。如果这些承诺中的任何一个失败,它也将能够注册一个错误回调。