[Angular 2] Using Promise to Http】的更多相关文章

angular中的promise用法 标签(空格分隔): angular 前言 Promise其实是一个规范,用类似then().then()这样的链式调用形式来处理因为异步带来意大利面条式的代码(多层函数嵌套). 多层函数嵌套的原因是,因为js的异步特性,导致我们后面函数需要用到这个异步函数获取的数据或者结果时,必须要等异步函数处理完成.所以必须写在这个异步函数结尾. Angular中的promise:$q Angular把promise封装成了一个服务$q方便我们到处使用它. 当我们用con…
一.Promise形象讲解A promise不是angular首创的,作为一种编程模式,它出现在1976年,比js还要古老得多.promise全称是 Futures and promises. 而在javascript世界中,一个广泛流行的库叫做Q 地址是https://github.com/kriskowal/q 而angular中的$q就是从它引入的.promise解决的是异步编程的问题,对于生活在同步编程世界中的程序员来说,它可能比较难于理解,这也构成了angular入门门槛之一,以下将用…
promise是一种用异步的方式处理值的方法,promise是对象,代表了一个函数最终可能的返回值或者抛出的异常,在与远程对象打交道时我们可以把他看作是远程对象的一个代理. 如果说是promise也是异步处理方式的一种,那么我们会想起它和XHR和$.ajax有啥区别呢? 习惯上js使用闭包或者回调来相应非同步返回的数据,比如页面加载之后的XHR请求.我们可以跟数据进行正常交互,就好像它已经返回了一样,而不需要依赖回调函数的触发. 那么ng提出的promise是为了解决什么问题呢? 回调已经被使用…
You can also use Promise for http: So for the service, you need to call toPromise() method: getVehicles(value?: string) { return this._http.get('api/vehicles.json') .map((response: Response) => <Vehicle[]>response.json().data) .toPromise() .catch…
promise目的就是为了跳出回调地狱.老掉牙的东西,大神轻拍. 举个最简单的例子:请求数据(getData),解析数据(executeData),显示数据(showData). //获取数据 function getData(callback){ callback && callback(); } //解析数据 function executeData(callback){ callback && callback(); } //显示数据 function showDat…
最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供基础功能.在用jQuery操作DOM的时候对Promise的使用欲不够强烈,最近学习node和Angular,需要用js写业务逻辑和数据操作代码的时候这种场景需求就出来了.一般来说事件适合在交互场景中运用,因为用户的行为本来就是分散的,而promise这样的流程控制适合在后台逻辑中处理业务. //j…
Angular中的promise: Promise是一种异步方式处理值的方法.代表了一个函数最 终可能的返回值或者抛出的异常 在之前,通常都是使用闭包或者回调来响应非同步的有意义数据 使用promise的目的是:获得功能组合和错误冒泡(error bubbling)能力的同时,保持 代码异步运行的能力. $q的api: defer():用来生成一个延迟对象 var defer =$q.defer(); reject():参数接收错误消息,相当于在回调函数中抛出一个异常,然后在下一个then中调用…
Angular异步调用 Promise和$q的用法 背景 首先说明一下promise异步调用出现的背景: javascript语言是一种单线程模式,就是说一次只能够执行一个任务,如果有多个任务的话就必须排队,后面的任务要等待前面的任务完成之后才能进行下一个任务.这种单线程模式容易造成阻塞,因为如果队列中的某一个任务耗时长,后面的任务都无法快速执行,页面很容易卡在某一个状态上,用户体验差.因此javascript提供了异步模式来解决这种问题,主要有以下几种异步模式: 1.回调函数(callback…
目录 使用promise 补充说明 $q.all $q.when 在上节中,我们在http中使用了then 和 在ngResource中返回了一个'延迟对象'. 本节介绍一下angular中的promise. 我觉得可以把js中的promise比作c#中的Task 的await 以同步的时候 实现回调. 使用promise 我们先可以了解一下$q的defer()方法创建的对象具有哪些方法 resolve(value):用来执行deferred promise,value可以为字符串,对象等. r…
promise 是一种用异步方式处理值的方法,promise是对象,代表了一个函数最终可能的返回值或抛出的异常.在与远程对象打交道非常有用,可以把它们看成一个远程对象的代理. 要在Angular中创建promise需要使用内置的$q服务.先用factory定义一个服务,注入$q服务. angular.module('readApp').factory('asyncService', [ "$q", function ($q) { var myAsync=function(flag) {…