这是我第一次尝试嵌套承诺。我正在使用bluebird库,但我认为所有承诺库的想法都是相同的。
从高层次来看,这就是我正在尝试做的事情:
myService.getSomeData(url)
.then((data) => {
myOtherService.getMoreData(data.uniqueId)
.then((thisDataIsAnArray) => {
//loop over the data above and do something
});
});
getMoreData()
应该进行 X 个服务调用并将结果存储在 X 个元素长的数组中。这就是我开始迷失的地方,因为我不确定如何制作这个方法以及我应该从中返回什么。我在蓝鸟那里尝试过几次Promise.all
and Promise.map
但我正在挣扎并认为我会征求建议。
承诺只是返回值您附加回调,而不是将回调传递到函数中。除非您返回所有这些,否则回调将无法链接或捕获所有错误。
另外,从所有返回.then
'就是你有了另一个承诺的那一刻。这使事情变得扁平化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)