栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AngularJS Promises,$ q,延迟

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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()

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426968.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号