美文网首页我爱编程
promise jquery angular

promise jquery angular

作者: 滚石_c2a6 | 来源:发表于2018-04-18 19:34 被阅读14次

1.angular $q
deffered方法
  $q.defer()生成一个deferred对象。
  deferred.resolve() 手动改变deferred对象的运行状态为"已完成"
  deferred.reject() 这个方法与deferred.resolve()正好相反,调用后将deferred对象的运行状态变为"已失败"
deffered属性
deferred.promise创建新的promise实例
promise 方法
  promise .then()
promise .catch(errorCallback) – shorthand for promise.then(null, errorCallback)
  promise .finally()
$q方法
defer();
Creates a Deferred object which represents a task which will finish in the future.
when(value);
Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise.
all(promises);
Combines multiple promises into a single promise that is resolved when all of the input promises are resolved.
2.jquery deferred
  (1) $.Deferred() 生成一个deferred对象。
  (2) deferred.done() 指定操作成功时的回调函数
  (3) deferred.fail() 指定操作失败时的回调函数
  (4) deferred.promise() 没有参数时,返回一个新的deferred对象,该对象的运行状态无法被改变;接受参数时,作用为在参数对象上部署deferred接口。
  (5) deferred.resolve() 手动改变deferred对象的运行状态为"已完成",从而立即触发done()方法。
  (6)deferred.reject() 这个方法与deferred.resolve()正好相反,调用后将deferred对象的运行状态变为"已失败",从而立即触发fail()方法。
  (7)deferred.then()
  (8)deferred.always()
  (9) $.when() 为多个操作指定回调函数。

注意:The Promise exposes only the Deferred methods needed to attach additional handlers or determine the state (then, done, fail, always, pipe, progress, state and promise), but not ones that change the state (resolve, reject, notify, resolveWith, rejectWith, and notifyWith).
jQuery提供了deferred.promise()方法。它的作用是,在原来的deferred对象上返回另一个deferred对象,后者只开放与改变执行状态无关的方法(比如done()方法和fail()方法),屏蔽与改变执行状态有关的方法(比如resolve()方法和reject()方法),从而使得执行状态不能被改变。

示例:

  var wait = function(dtd){
    var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
    var tasks = function(){
      alert("执行完毕!");
      dtd.resolve(); // 改变Deferred对象的执行状态
    };
    setTimeout(tasks,5000);
    return dtd.promise(); // 返回promise对象
  };
  $.when(wait())
  .done(function(){ alert("哈哈,成功了!"); })
  .fail(function(){ alert("出错啦!"); });

参考:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

相关文章

  • promise jquery angular

    1.angular $qdeffered方法 $q.defer()生成一个deferred对象。deferre...

  • 异步处理之promise

    promise并不是一个新技术了,在Q库、angular的$q、jquery的deferred等我们都已经见识过并...

  • AngularJS 1.4.8笔记(持续更新)

    FAQs 1. 如何在Angular中使用jQuery? jQuery 2.1+ for Angular 1.4 ...

  • AngularJs学习第二天

    Angular VS jQuery jQuery:库封装了一些常用的方法,我们主动调用这些方法 Angular:框...

  • ES6异步:Promise

    #Promise迷你书通过 ES6 Promise 和 jQuery Deferred 的异同学习 Promise

  • 6. Angular

    Angular使用的是MVC模式 jQuery绑定数据与 Angular绑定数据的区别?jQuery先拿DOM节点...

  • angular

    jQuery.inArray() angular.forEach

  • angular控制器和指令

    Angular Angular vs jQuery 提高了dom操作的效率 不推崇dom操作 angular.el...

  • 封装 jQuery.ajax

    封装一个 jQuery.ajax 升级jQuery.ajax 满足 Promise 规则

  • 初识Angular

    使用Angular angular是一个框架(框架包含类库)类库:函数的集合。jquery. angular是做什...

网友评论

    本文标题:promise jquery angular

    本文链接:https://www.haomeiwen.com/subject/arsbkftx.html