`

Angularjs同步操作http请求with $promise

阅读更多
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
      var deferred = $q.defer();
      AccountService.getProfile().then(function(res) {
        deferred.resolve(res);
      }, function(res) {
        deferred.resolve(res);
      });
      return deferred.promise;
    }]);


// use a factory
// parent controller user
$scope.getPersonalInfo = function() {
          profilePromise.then(function(res) {
              var profile = res.content;
          ........

// define a scope used on child
$scope.profilePromise = profilePromise;

 

原由:有时候在前端开发的时候,需要多次调用同一个http请求,若多次加载不仅不浪费不必要的http请求,还会多处代码维护,为开发带来诸多不变。

另一方面使用$boardcast父级发送消息数据给子级,子级经常会遇到异步操作无法正确获取需要的数据。

特此添加factory,一处添加维护,其他地方直接使用即可。

 

参考:http://www.webdeveasy.com/interceptors-in-angularjs-and-useful-examples/

 

 

若有疑问,请发表评论或添加微信为你解答:

更多实例应用扫码体验:

分享到:
评论

相关推荐

    AngularJS中update两次出现$promise属性无法识别的解决方法

    本文主要介绍的是在AngularJS中update两次出现$promise属性无法识别的解决方法,下面话不多说,先来看看错误提示,然后再看看解决的办法吧。 一、错误信息如下: ERROR 2015-12-02 14:33:17,653 ...

    解决Angularjs异步操作后台请求用$q.all排列先后顺序问题

    然后,可以使用$q.all方法来确保所有通过promise发起的请求都返回后,再执行相关的操作。开发者可以创建一个promise数组,把所有相关的promise对象加入到这个数组中,然后将这个数组作为参数传递给$q.all方法。 ...

    解决angularjs中同步执行http请求的方法

    总结一下,解决AngularJS中同步执行HTTP请求的方法是利用$http服务返回的Promise对象。通过在`.then()`中处理响应,并返回处理后的数据,可以确保后续操作在数据可用后进行,从而达到一种“同步”的效果。这种模式在...

    07angularjs4.x请求数据(上).zip

    在AngularJS中,$http服务返回的是一个Promise对象,代表了异步操作的结果。Promise提供了链式调用的接口,允许你在数据请求完成后执行一系列后续操作,如处理响应数据、错误处理等。 此外,你可能会学习到服务...

    angularjs-FlightDashboard, 带有 AngularJS $q 演示,源代码,&教程的Promise链.zip

    angularjs-FlightDashboard, 带有 AngularJS $q 演示,源代码,&教程的Promise链 简介承诺是解决异步请求和响应复杂性的一个很好的解决方案。 AngularJS使用 $q 和 $http 等服务提供承诺;其他服务也使用承诺,但我...

    Angular异步变同步处理方法

    Angular异步变同步处理方法是前端开发中用于解决多个接口请求顺序依赖问题的一种技术手段。由于异步操作的特性,它能处理那些按顺序依次执行的接口调用,而不会阻塞主线程,让页面陷入假死状态。在Angular中,主要...

    详解AngularJS中$http缓存以及处理多个$http请求的方法

    随着应用复杂度的增加,开发者经常会遇到需要从后端读取数据的需求,AngularJS 提供了 $http 服务来处理这类网络请求。但是,在处理多个异步请求时,会出现一系列问题,比如请求的加载状态、请求之间的依赖关系处理...

    AngularJS中的promise用法分析.docx

    在AngularJS中,Promise是一种处理异步操作的强大工具,它为复杂的异步代码提供了一种更易管理和可读的结构。Promise是JavaScript中处理异步操作的一种设计模式,特别是为了应对回调地狱(nested callbacks)而引入...

    AngularJS实现ajax请求的方法

    AngularJS实现ajax请求的方法知识点: AngularJS是一种流行的JavaScript框架,它为开发单页应用程序(SPA)提供了丰富的功能。在AngularJS中实现ajax请求是进行前后端数据交互的基本技能。ajax(Asynchronous ...

    AngularJS 中的Promise — $q服务详解

    先说说什么是Promise,什么是$q吧。Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal’s Q还有JQuery的Deffered。 什么是Promise 以前了解过Ajax的都能体会到回调的痛苦,同步的代码很容易调试,...

    AngularJS 中的Promise --- $q服务详解

    Promise是JavaScript中用于处理异步操作的抽象概念,它提供了一种更优雅的方式来组织复杂的异步流程,避免了“回调地狱”。在AngularJS中,Promise的实现是通过`$q`服务来完成的。 首先,Promise有三个核心状态:...

    uniapp-request.zip-Promise方式封装uniapp请求

    Promise是JavaScript中处理异步操作的一种方式,它代表了一个可能尚未完成但最终会完成的操作。Promise有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。一旦状态由pending变为fulfilled或...

    基于Promise,支持请求转发的跨平台javascript http请求库.zip

    《基于Promise的跨平台JavaScript HTTP请求库:深入解析与应用》 在当今的Web开发领域,JavaScript已经成为不可或缺的一部分,尤其在处理HTTP请求方面。随着Promise的引入,异步编程变得更加简洁和易于理解。本篇...

    使用Promise封装的微信小程序网络请求库

    微信小程序提供了`wx.request()`函数来处理HTTP请求,但其原生接口并不支持Promise,这在处理异步操作时可能会导致代码难以理解和维护。为了改善这一情况,开发者通常会将微信小程序的网络请求接口封装成Promise形式...

    AngularJS出现$http异步后台无法获取请求参数问题的解决方法

    AngularJS的$http服务遵循Promise接口,这是一个异步编程模型,它允许开发者以一种更简洁且更易读的方式处理异步操作的结果。开发者可以通过$http服务发起GET、POST、DELETE、PUT等多种类型的请求,并且可以使用快捷...

    AngularJs定时器$interval 和 $timeout详解

    最后,虽然$interval和$timeout服务的使用与JavaScript原生的setInterval和setTimeout非常相似,但它们具有AngularJS的特殊处理,比如在AngularJS的脏值检查机制内,以及它们返回promise对象的特性,这使得它们更加...

    微信小程序 请求 封装, promise, 请求并发限制, 排队请求, ...wx-request-master.zip

    2. **Promise的使用**:`wx.request()`返回一个Promise对象,可以利用Promise的链式调用来处理异步操作,使得代码更加清晰、易读。例如,我们可以使用`.then()`来处理成功回调,`.catch()`来处理错误回调,以及`....

Global site tag (gtag.js) - Google Analytics