AngularJS Promises,$ q,延迟

AngularJS Promises,$ q,延迟,第1张

AngularJS Promises,$ q,延迟

恕我直言,我认为有很多聪明(优雅)的方法可以做到这一点

$q.all

请看下面的代码。

我假设您想一次返回数据,并将所有结果汇总在一个大数组上。

var myApp = angular.module('myApp', []);myApp.factory('myService', function ($http, $q) {    return {        getAlldata: function () { return $q.all([     $http.get('../wordpress/api/core/get_category_posts/?category_id=14'),     $http.get('../wordpress/api/core/get_category_posts/?category_id=15'),     $http.get('../wordpress/api/core/get_category_posts/?category_id=16'),     $http.get('../wordpress/api/core/get_category_posts/?category_id=17') ]).then(function (results) {     var aggregatedData = [];     angular.forEach(results, function (result) {         aggregatedData = aggregatedData.concat(result.data);     });     return aggregatedData; });        }    };});

您可以在上方看到

aggregatedData
只有通过完成所有异步调用后,才会生成
$q.all

例如,您只需要将该服务作为依赖项包含到您的一个控制器中,然后像这样调用该服务

myService.getAllData()

希望对您有所帮助,或者让我知道您是否需要一个完整的示例,我可以提供一个示例!:)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5087277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存