通过这个链接,我找到了一个返回多个资源承诺的例子(第44-52行):
http://embed.plnkr.co/LZad4ZyEYjrbKiTPbAwu/script.js
var GistsData = Gists.query();
var MetaData = Meta.get();
GistsData.$promise.then(function(response) {console.log('Resource 1 data loaded!')});
MetaData.$promise.then(function(response) {console.log('Resource 2 data loaded!')});
return $q.all([GistsData.$promise, MetaData.$promise]);
在我的情况下,第二个资源API调用(MetaData)依赖于第一个资源API调用(GistsData)返回的特定值。
我试着找出如何在MetaData资源中使用GistData返回的值(例如ID)?像这样:
var MetaData = Meta.get({ id : GistsData.id });
我想在带有ID的MetaData返回承诺后返回一个承诺。
谢谢
答案 0 :(得分:1)
首先,我建议你多做一些关于承诺的内容,因为它们很棒:)
至于你的问题,你想要做的是保证链接。请注意您如何为每个资源承诺使用.then()
函数。 1}}在承诺解决后被调用,在您的情况下是在返回查询时。
因此,不要独立运行每个,而是使用第一个promise的then()
函数然后开始运行第二个。例如:
then()
现在有更好的方法来编写上述内容,但希望它能够为您解释链接。