返回多个数据独立资源承诺

时间:2015-08-21 01:04:19

标签: angularjs api angular-promise angular-resource

通过这个链接,我找到了一个返回多个资源承诺的例子(第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返回承诺后返回一个承诺。

谢谢

1 个答案:

答案 0 :(得分:1)

首先,我建议你多做一些关于承诺的内容,因为它们很棒:)

至于你的问题,你想要做的是保证链接。请注意您如何为每个资源承诺使用.then()函数。

因此,不要独立运行每个,而是使用第一个promise的then()函数然后开始运行第二个。例如:

then()

现在有更好的方法来编写上述内容,但希望它能够为您解释链接。