异步、延迟、承诺
来源:互联网 发布:tensorflow 好玩 编辑:程序博客网 时间:2024/06/05 03:57
延迟模块的API遵循 promise 规范
$.Deferred()
$.Deferred()返回一个deferred(延迟)对象
var deffered = jQuery.Deferred();
给deffered添加延迟处理函数(承诺),可以链式调用
deferred.done() 解决
deferred.fail() 拒绝
deferred.always() 结束(解决或拒绝)
deferred.progress()进度变化
deferred.then() 结束或进度变化
延迟判决
deferred.notify()、deferred.notifyWith(args) 延迟进度通知,回调progress、then
deferred.reject()、deferred.rejectWith(args) 延迟被拒绝,回调fial、always、then
deferred.resolve()、deferred.resolveWith(args)延迟解决,回调done、always、then
同时处理多个deffered,$.when(deffered1,deffered2).then(function(){});
var promise = deferred.promise();返回承诺对象
promise可像deffered一样添加承诺(延迟处理函数)
$.ajax()
$.ajax() 发出请求并返回一个jqXHR对象,它是一个deferred对象,和XHR对象一样拥有 readyState、responseText、status、statusText等属性。var jqXHR = $.ajax({});
给jqXHR 添加回调函数,可以链式调用
jqXHR .done() :请求成功回调,取代了 jqXHR .success
jqXHR .always():请求结束回调,取代了jqXHR .complete
jqXHR .fail() :请求失败回调,取代了jqXHR .error
jqXHR同样拥有progress()、then()、promise()
同时处理多个jqXHR对象,$.when(jqXHR1 , jqXHR2).done(function(){})
$q.defer()
angularjs的$q.defer()返回一个延迟对象
var deferred = $q.defer();
延迟判决
deferred.notify(args) 延迟进度通知
deferred.resolve(args) 延迟解决
deferred.reject(args) 延迟被拒绝
var promise = deferred.promise;承诺对象
添加承诺(延迟处理函数)
promise.then(successCallback, errorCallback, notifyCallback) 按顺序添加承诺
promise.catch(errorCallback) 拒绝
promise.finally(callback) 始终(解决、拒绝、进展)
0 0
- 异步、延迟、承诺
- 承诺
- 承诺
- 承诺
- 承诺
- 承诺
- 《承诺》
- 承诺
- 承诺
- 承诺
- 承诺
- 承诺
- 承诺
- 承诺
- 承诺
- ListView异步延迟加载
- 延迟脚本/异步脚本
- 承诺,承诺
- jQuery的deferred对象使用笔记
- UVa 104 Arbitrage (DP+最短路+Floyd)
- R-ArcGIS探秘(1)安装以及Sample运行
- 轻松学习AutoLayout
- POJ 3246 Balanced Lineup(RMQ算法)
- 异步、延迟、承诺
- 安卓SDK离线包安装(Android 5.0 For ADT-Bundle)
- bootstrap v3学习笔记之组件
- 使用bootstrap时间插件
- eclipse中Android项目架构
- 体验决定销量,真假4K争论只是忽悠人而已
- JAVA bean与XML互转的利器---XStream
- centOS 7.1.1503 搭建vsftpd环境-使用虚拟用户登录
- android APP常用的颜色及代码