Promise in AngularJS】的更多相关文章

What's promise Angular’s event system provides a lot of power to our Angular apps. One of the most powerful features that it enables is automatic resolution of promises. Promises are a method of resolving a value or not in an asynchronous manner. Pro…
angularJS应用是完全运行在客户端的应用,我们可以通过angularJS构建一个不需依赖于后端,同时能够实现动态内容和响应的web应用,angularJS提供了将应用与远程服务器的信息集成在一起的方法 $http服务 angularJS提供了内置的$http服务直接同外部进行通信,$http服务封装了浏览器原生的XMLHttpRequest对象 $http服务只接收一个参数对象,包含了用来生成http请求的配置内容,$http函数返回一个promise对象,具有success和error两…
Promise是一种模式,以同步操作的流程形式来操作异步事件,避免了层层嵌套,可以链式操作异步事件. 我们知道,在编写javascript异步代码时,callback是最最简单的机制,可是用这种机制的话必须牺牲控制流.异常处理和函数语义化为代价,甚至会让我们掉进出现callback大坑,而promise解决了这个问题. ES6中Promise.angularJS内置的AngularJS内置Q,以及when采用的都是Promises/A规范,如下: 每个任务都有三种状态:未完成(pending).…
一.整体结构 项目github地址https://github.com/tastejs/todomvc/ 排除通用的css样式文件和引用的js库文件,仅看html和js 1.1 knockoutjs版todo app文件结构 knockoutjs --index.html --js ----app.js  1.2 backbonejs版todo app文件结构 backbonejs --index.html --js ----collections ------todos.js ----mode…
页面导航     过去,一个URL代表一个页面.但是随着Ajax的兴起,情况发生的很大的变化.不同的内容可以使用同一个URL.这让浏览器中的回退.前进甚至收藏按钮都失去了作用.而AngularJS提供了一套解决方案能够避免这种情况. 怎么解决,有一个小技巧:浏览器不会因为URL中#符号后面的值改变而重新请求页面.(关于#符号,参见另一博文)     现有如下RESTful的的URL:         /admin/users/list         /admin/users/new      …
amgular $q用法   在用JQuery的时候就知道 promise 是 Js异步编程模式的一种模式,但是不是很明白他跟JQuery的deferred对象有什么区别.随着公司项目的进行,要跟后台接数据了,所以决定搞定它. Promise Promise是一种模式,以同步操作的流程形式来操作异步事件,避免了层层嵌套,可以链式操作异步事件. 我们知道,在编写javascript异步代码时,callback是最最简单的机制,可是用这种机制的话必须牺牲控制流.异常处理和函数语义化为代价,甚至会让我…
这一篇我们将一起感受学习一个小型的.活生生的应用,而不是继续深入分析哪些单个的特性.我们将会一起感受一下,前面所讨论过的所有片段如何才能真正的组合在一起,形成一个真实的.可以运行的应用. GutHub是一款菜谱管理应用.我们学习它有两个目的,第一是用它来管理美味的菜谱,第二是用它来学习angularjs的方方面面: 这款应用的特性如下: a)         两列布局 b)         在左侧有一个导航栏 c)         允许你创建新菜谱 d)         允许你浏览现有的菜谱列表…
作者:寸志链接:https://zhuanlan.zhihu.com/p/19622332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 早上,老爸说:“儿子,天气如何?” 每周一早上,老爸问儿子下午的天气情况,儿子可以到自家房子旁边小山上使用望远镜来观看.儿子在出发时许诺(Promise)老爸(会通知老爸天气情况). 此刻,老爸决定,如果天气不错,明天就出去捕鱼,否则就不去.而且如果儿子无法获得天气预报的话,也不去捕鱼. 30分钟左右,儿子回来了,每周的结局都不…
1. Javascript 回调 Promise 2. Angularjs $parent 3. CSS margin padding border 4. Angularjs $filter 5. Django Permission…
先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过Ajax的都能体会到回调的痛苦,同步的代码很容易调试,但是异步回调的代码,会让开发者陷入泥潭,无法跟踪,比如: funA(arg1,arg2,function(){ funcB(arg1,arg2,function(){ funcC(arg1,arg2,function(){ xxxx.... })…
1.先来看一段Demo,看完这个demo你可以思考下如果使用$.ajax如何处理同样的逻辑,使用ng的promise有何优势? var ngApp=angular.module('ngApp',[]); /******************************************************************* * $q为内置服务 ****************************************************************/ ngA…
angularjs提供的$q服务是对Promises规范的一个实现.$q服务可以把一段异步的代码封装成同步的样式. 为啥是样式,因为异步还是异步,它并不会柱塞代码,只是看起来像同步代码. $q.when('abc').then().then(); 下面的代码演示了$q的构造函数的使用方法.$q的构造函数接受一个function(resolve,reject)的函数,resolve是成功的回掉,reject是失败的回掉. 通常Ajax请求都是异步的,通过success,failed回掉来处理结果.…
原文链接:a better way to learn AngularJS - promises AngularJS通过内置的$q服务提供Promise编程模式.通过将异步函数注册到promise对象,Promise编程模式提供一种链式调用异步函数的方式. Promise模式作为ES6规范之一,取得JavaScript原生支持.AngularJS中$q服务提供的接口,非常近似这一新的规范,所以代码移植到ES6版本将会非常容易. 初始化: <html> <head> <title…
promise 是一种用异步方式处理值的方法,promise是对象,代表了一个函数最终可能的返回值或抛出的异常.在与远程对象打交道非常有用,可以把它们看成一个远程对象的代理. 要在Angular中创建promise需要使用内置的$q服务.先用factory定义一个服务,注入$q服务. angular.module('readApp').factory('asyncService', [ "$q", function ($q) { var myAsync=function(flag) {…
原文地址:http://my.oschina.net/ilivebox/blog/293771 目录[-] Promise 简单例子 链式 Promise Parallel Promises And 'Promise-Ifying' Plain Values AngularJS 中的实际应用 实际链式例子 测试 Promise - 基于代码 Promises And Design Patterns 写得好长好长好长长~ 解决 Javascript 异步事件的传统方式是回调函数:调用一个方法,然后…
在谈论Promise之前我们要了解一下一些额外的知识:我们知道JavaScript语言的执行环境是“单线程”,所谓单线程,就是一次只能够执行一个任务,如果有多个任务的话就要排队,前面一个任务完成后才可以继续下一个任务. 这种“单线程”的好处就是实现起来比较简单,容易操作:坏处就是容易造成阻塞,因为队列中如果有一个任务耗时比较长,那么后面的任务都无法快速执行,或导致页面卡在某个状态上,给用户的体验很差. 当然JavaScript提供了“异步模式”去解决上述的问题,关于“异步模式”JavaScrip…
Promise 一 介绍 1.什么是promise 我们知道JavaScript语言的执行环境是“单线程”,所谓单线程,就是一次只能够执行一个任务,如果有多个任务的话就要排队,前面一个任务完成后才可以继续下一个任务.这种“单线程”的好处就是实现起来比较简单,容易操作:坏处就是容易造成阻塞,因为队列中如果有一个任务耗时比较长,那么后面的任务都无法快速执行,或导致页面卡在某个状态上,给用户的体验很差.当然JavaScript提供了“异步模式”去解决上述的问题,关于“异步模式”JavaScript提供…
解决 Javascript 异步事件的传统方式是回调函数:调用一个方法,然后给它一个函数引用,当这个方法完结的时候执行这个函数引用. <!-- lang: js --> $.get('api/gizmo/42', function(gizmo) { console.log(gizmo); // or whatever }); 看起来很不错对不对,不过,也有缺点的:首先,合并或者链接多个异步过程超复杂:要么就是大量的模板代码,要么就是嗯哼你懂的回调地狱(一层套一层的回调): <!-- la…
一.什么是Promise Promise是对象,代表了一个函数最终可能的返回值或抛出的异常,就是用来异步处理值的. Promise是一个构造函数,自己身上有all.reject.resolve这几个异步方式处理值的方法,原型上有then.catch等同样很眼熟的方法. 二.为什么使用Promise 有了Promise对象,就可以把异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数.此外,Promise对象提供了统一的接口,使得控制异步操作更加容易. Promise对象有以下2个特点: 1…
了解Promise 在谈论Promise之前我们要了解一下一些额外的知识:我们知道JavaScript语言的执行环境是"单线程",所谓单线程,就是一次只能够执行一个任务,如果有多个任务的话就要排队,前面一个任务完成后才可以继续下一个任务. 这种"单线程"的好处就是实现起来比较简单,容易操作:坏处就是容易造成阻塞,因为队列中如果有一个任务耗时比较长,那么后面的任务都无法快速执行,或导致页面卡在某个状态上,给用户的体验很差. 当然JavaScript提供了"异…
AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记) 前言 在"AngularJS项目开发技巧之图片预加载"一文中,自己曾经天真的认为提升服务端带宽就可以解决图片加载问题.但自己的想法错了,通过阅读破狼的书<AngularJS深度剖析与最佳实践>,隐隐察觉到是自己的项目架构出现了问题.存在很多待优化的地方.其书中这样写到"如果在实例化控制器之前,需要准备一些特定数据,或者有条件的阻止进入路由,…
在使用AngularJS中处理promise的时候,有时会碰到需要处理多个promise的情况. 最简单的处理就是每个promise都then.如下: var app = angular.module("app",[]); app.controller("AppCtrl", function($q. $timeout){ var one = $q.defer(); var two = $q.defer(); var three = $q.defer(); $time…
一.概念解释 全称是未来与承诺,Futures and promises,是一种编程模式,不是AngularJS首创.javascript里有个流行库Q,而AngularJS是$q,其就是从Q引入的:解决异步编程问题.是一种长时间运行而且不一定必须完成的操作结果,不会阻塞和等待长时间的操作完成,而是直接返回一个代表承诺的结果的对象,它实现一种叫then的方法,用来注册完成和拒绝时候得回调函数,如then(resovedHandler, rejectedHandler),Promise在任何时刻都…
一天早晨,爹对儿子说:“宝儿,出去看看天气如何!” 每个星期天的早晨,爹都叫小宝拿着超级望远镜去家附近最高的山头上看看天气走势如何,小宝说没问题,我们可以认为小宝在离开家的时候给了他爹一个promise. 这时候,他爹就想了,如果明天艳阳高照,他就准备去钓鱼,如果天实在不行,就作罢,如果小宝对预报明天的天气也没底,他就在家宅一天哪也不去. 大概过了半小时,小宝回来了.每周的结果不尽相同: A计划 :天气晴朗 小宝不辱使命,说外面阳光明媚,万里无云,这个promise was resolved(小…
目录 使用promise 补充说明 $q.all $q.when 在上节中,我们在http中使用了then 和 在ngResource中返回了一个'延迟对象'. 本节介绍一下angular中的promise. 我觉得可以把js中的promise比作c#中的Task 的await 以同步的时候 实现回调. 使用promise 我们先可以了解一下$q的defer()方法创建的对象具有哪些方法 resolve(value):用来执行deferred promise,value可以为字符串,对象等. r…
实例说明一 <!DOCTYPE html> <html ng-app="my-app"> <head> <meta charset="utf-8"> <title>JS Bin</title> <script src="http://apps.bdimg.com/libs/angular.js/1.4.0-beta.4/angular.min.js"></s…
还是同一个项目,在项目中,发现多个controller之内有一个共同的服务器请求,当时只是不断的重复使用,如今,现在项目结束,代码开始走向了优化迭代的阶段: 首先,我的思路是把这个共同的请求,从controller里抽出来,做成一个服务,然后在需要的controller里注入: 第一个问题是请求服务器数据: var app = angular.module('testApp',['ui.bootstrap']); app.factory('myService',['$http','$q',fun…
这篇文章讲的不错, angular $q  和 promise!! -------------------------------------------------------------- 通过调用  $q.defer() 可以构建一个新的 deffered 实例.deffered 对象用来将 Promise 实例与 标记任务状态(执行成功还是不成功)的 API 相关联. deffered 对象的方法 resolve(value) ——传入 value 解决派生的 promise. 如果 v…
https://www.peterbe.com/plog/promises-with-$http…
什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化),并且是延迟加载的(需要时才会被创建).服务提供了把与特定功能相关联的方法集中在一起的接口.(此解释来源于AngularJS权威教程). 在笔者的认知中,服务就是用来创建数据,存储数据,也可以向后台请求数据的一个很特别的“领域”,除此之外,服务还能与控制器之间进行紧密的通信,保证数据能通过控制器显示…