AngularJS使用$q进行“同步”编程

在AngularJS中使用 q 进 行 “ 同 步 ” 编 程 发 表 于 2015 − 04 − 06 ∣ 分 类 于 a n g u l a r j s ∣ 阅 读 次 数 : 86 今 天 群 里 有 位 朋 友 问 到 直 接 返 回 q进行“同步”编程 发表于 2015-04-06 | 分类于 angularjs | 阅读次数: 86 今天群里有位朋友问到直接返回 q20150406angularjs:86http说读不到数据,原因在于$http是异步请求,而且是“不可期”的,你不知道什么时候这个请求完成了。

而对于这种需要“同步”编程的方式,AngularJS提供了一个内置Service $q,它提供了一种承诺/延后(promise/deferred),可以保证我们的调用代码一定能够拿到数据。所以我们用起来可以像同步调用一样,话说回来,最终还是xhr异步请求。

## Factory

app.factory(‘itemService’, [‘ h t t p ′ , ′ http', ' http,q’, function ($http, $q) {
return {
query : function() {
var deferred = $q.defer();//声明承诺
KaTeX parse error: Expected 'EOF', got '}' at position 270: …不是数据,而是API }̲ }; }]); C…scope’, function (itemService,$scope) { // 注入itemService
var promise = itemService.query(); //获得承诺接口
promise.then(function(data) { // 成功回调
KaTeX parse error: Expected 'EOF', got '}' at position 26: … = data; }̲, function(data…q

本文作者: xialeistudio
本文链接: https//www.ddhigh.com/2015/04/06/angularjs-q.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值