首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AngularJS Promise --- $q服务详解

但是有了Promise这种规范,它能帮助开发者用同步方式,编写异步代码,比如在AngularJS可以使用这种方式: deferABC.resolve(xxx) .then(funcSuccess(...小白让舍友带饭() .then(韭菜鸡蛋,西红柿炒鸡蛋) .finally(带包烟) $q服务 q服务是AngularJS自己封装实现一种Promise实现,相对与Kris Kwal's Q要轻量级多...在Promise,定义了三种状态:等待状态,完成状态,拒绝状态。...其中resolve传入变量或者函数返回结果,会当作第一个then方法参数。...all()方法 这个all()方法,可以把多个primise数组合并成一个。当所有的promise执行成功后,会执行后面的回调。回调参数,是每个promise执行结果。

1.5K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    angularjs promise详解

    Promise对象有以下2个特点:  1.对象状态不受外界影响。 Promise对象代表一个异步操作,有三种状态:Pending(进行)、Resolved(已完成)和Rejected(已失败)。...; } } }]) }); 讲一下$q服务 q服务是AngularJS自己封装实现一种Promise实现。...//promise属性里面又包含了then、catch、finally三个方法 ? 在Promise,定义了三种状态:等待状态,完成状态,拒绝状态。...all()方法 当批量执行某些方法时,就可以使用这个方法。有了all,你就可以并行执行多个异步操作,并且在一个回调处理所有的返回数据。...那么,三个异步操作返回数据哪里去了呢?都在then里面呢,all会把所有异步操作结果放进一个数组传给then,就是 下面的results。

    1.1K50

    JavaScriptPromise

    这个新promise对象在触发成功状态以后,会把一个包含iterable里所有promise返回值数组作为成功回调返回值,顺序跟iterable顺序保持一致;如果这个新promise对象触发了失败状态...3.Promise.reject(reason) 返回一个状态为失败Promise对象,并将给定失败信息传递给对应处理方法。...当这个回调函数被调用,新 promise 将以它返回值来resolve,否则如果当前promise 进入fulfilled状态,则以当前promise完成结果作为新promise完成结果。...另外,then方法指定回调函数,如果运行抛出错误,也会被catch方法捕获。...Promise 填充过程都被日志记录(logged)下来,这些日志信息展示了方法同步代码和异步代码是如何通过Promise完成解耦

    1.1K20

    JavaScript return await promise 与 return promise

    原文地址:'return await promise' vs 'return promise' in JavaScript 原文作者:Dmitri Pavlutin 译文出自:掘金翻译计划 当从异步功能返回时...相同行为 为了找到两个表达式(与)区别,(return await promise vs return promise), 我要使用辅助功能。 delayedDivide(n1, n2)....在此步骤,您已经看到使用和没有区别 return await promise and return promise 至少在处理成功履行承诺时。 但是,让我们搜索更多! 2....return await promisereturn promise 但是,如果你想抓住拒绝承诺,你从异步功能返回,那么你绝对应该使用表达和故意添加。...return await promiseawait `catch(error) {...}声明捕获只等待拒绝承诺在声明。try {...} 喜欢这个帖子?请分享!

    2.1K20

    Promisethen链机制

    Promisethen链机制因为每一次 .then都会返回一个新promise实例,所以我们就可以持续 .then下去了而且因为实例诞生方式不同,所以状态判断标准也不同第一类:new Promise...);.then异步promise.then(onfulfilled,onrejected)情况一:此时已经知道promise是成功还是失败<!...链穿透机制,无论最开始还是哪个then,出现了让状态为失败情况,都会顺延到最末尾catch部分)Promise.all//异步“并行”:同时处理,相互之间互不影响fn1().then(result...;执行Promise.all返回一个新promise实例@p并且传递一个数组,数组包含n多其他promise实例如果数组每一个promise实例最后都是成功状态,则@p也会是成功,它值也是一个数组...,按照“最开始顺序”(不会考虑谁先成功)依次存储各个promise实例结果;但凡数组某个promise实例是失败(只要遇到一个失败,后面不在处理了)。

    18020

    Javascript 神器——Promise

    Promise in js 回调函数真正问题在于他剥夺了我们使用 return 和 throw 这些关键字能力。而 Promise 很好地解决了这一切。...ES6 目标,是使得 JavaScript 语言可以用来编写大型复杂应用程序,成为企业级开发语言。 概念 ES6 原生提供了 Promise 对象。...Promise 对象代表一个异步操作,有三种状态:Pending(进行)、Resolved(已完成,又称 Fulfilled)和 Rejected(已失败)。...有了 Promise 对象,就可以将异步操作以同步操作流程表达出来,避免了层层嵌套回调函数。此外,Promise 对象提供统一接口,使得控制异步操作更加容易。 Promise 也有一些缺点。...处理一个 promise map 集合。

    1.1K50

    AngularJS按需加载ocLazyLoad

    初学者,有不足地方希望各位指出 一、前言     ocLoayLoad是AngularJS模块按需加载器。一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题。...但是当我们网站渐渐庞大起来,这样子加载策略让网速初始化速度变得越来越慢,用户体验不好。二来,分模块加载易于团队协作,减低代码冲突。   ...三 、按需加载场景     三、1 路由加载(resolve/uiRouter) 基于uiRouterresolve是在加载controller和template之前所执行一系列操作,它帮助我们初始化我们所要前往那一个视图...因此,我们可以在resolve步骤里面加载我们所需要controller。...模板里面嵌套controller呢?

    1.7K80

    AngularJS factory、 service 和 provider

    AngularJS factory、 service 和 provider 初学 AngularJS 时, 肯定会对其提供 factory 、 service 和 provider 感到疑惑, 这三种都是提供服务方式...factory factory 可以认为是设计模式工厂方法, 就是你提供一个方法, 该方法返回一个对象实例, 对于 AngularJS factory 来说, 就是先定义一个对象, 给这个对象添加属性和方法...$get(); 使用 factory、 service 与 provider factory、 service 与 provider 使用起来是一样, 都是通过 AngularJS 依赖注入使用,...module 启动时进行配置, 从而达到特殊用途, 比如在上面的 provider 可以添加一个 setName 方法, 可以在启动时调用这个方法, 进行一些额外初始化工作: app.provider...在 controller 添加显示 provider 这些信息: app.controller('TestController', ['$scope', 'MyFactory', 'MyService

    78321

    JavaScriptPromise使用详解

    那么如何解决地狱回调,保持我们代码简短,这时Promise就出场了,Promise对象可以理解为一次执行异步操作,使用Promise对象之后可以使用一种链式调用方式来组织代码;让代码更加直观。...Promise正如字面意思-承诺,“承诺将来会执行”约定事情。我们首先需要了解Promise三种状态: pending: 初始状态,既不是成功,也不是失败状态。...Resolve函数作用是,将Promise对象状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作结果,作为参数传递出去; Reject...函数作用是,将Promise对象状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出错误,作为参数传递出去。...Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态回调函数。

    1.3K1513

    iOS Promise 设计模式

    Promise 设计模式原理 Promise设计模式把每一个异步操作都封装成一个Promise对象,这个Promise对象就是这个异步操作执行完毕结果,但是这个结果是可变,就像薛定谔猫,只有执行了才知道...Promise 使用 then 作为关键字,回调最终结果。 then 是整个Promise设计模式核心,必须要被实现。...另外还有其它几个关键字用来表示一个Promise对象状态: pending: 任务执行,状态可能会进入下面的fullfill或者reject二者之一 fufill/resolved: 任务完成了,返回结果...when: 多个异步任务执行完毕之后才会回调 Promise模式实现 Promise设计模式在 iOS/MacOS 平台最佳实践是由大名鼎鼎homebrew作者 Max Howell 写一个支持...上面的函数,有一个dispatchBarrierSync,barrier是栅栏意思,一般来说如果我们有多个异步任务,但是希望他们按照一定顺序执行,就可以使用这个方法。

    1.4K00

    iOS Promise 设计模式

    Promise 设计模式原理 Promise设计模式把每一个异步操作都封装成一个Promise对象,这个Promise对象就是这个异步操作执行完毕结果,但是这个结果是可变,就像薛定谔猫,只有执行了才知道...Promise 使用 then 作为关键字,回调最终结果。 then 是整个Promise设计模式核心,必须要被实现。...另外还有其它几个关键字用来表示一个Promise对象状态: pending: 任务执行,状态可能会进入下面的fullfill或者reject二者之一 fufill/resolved: 任务完成了...最终都会执行回调 when: 多个异步任务执行完毕之后才会回调 Promise模式实现 Promise设计模式在 iOS/MacOS 平台最佳实践是由大名鼎鼎homebrew作者 Max...上面的函数,有一个dispatchbarriersync ,barrier是栅栏意思,一般来说如果我们有多个异步任务,但是希望他们按照一定顺序执行,就可以使用这个方法

    4.1K10
    领券