zoukankan      html  css  js  c++  java
  • Jquery 延迟对象

        延迟对象,在jQuery的1.5引入,是通过调用jQuery.Deferred()方法创建一个可链式调用的工具对象。 它可以注册多个回调到回调队列, 调用回调队列,准备代替任何同步或异步函数的成功或失败状态。

    deferred.alway()

    当Deferred(延迟)对象解决或拒绝时,调用添加处理程序。

    deferred.always( alwaysCallbacks [, alwaysCallbacks ] )

    参数 alwaysCallbacks 类型 : 一个函数或函数数组 

    例子:

    1 $.get("test.html").always( function() {
    2   console.log("$.get completed with success or error callback arguments");
    3 } );
    4 Object {readyState: 1}
    5 
    6 
    7 
    8 .get completed with success or error callback arguments

    deferred.done()

    当延迟对象结决时,添加处理程序 ,参数与deferred.alway() 相同

     例子:

     1 function b(){
     2     console.log("test");
     3 }
     4 
     5 
     6 var dtd=$.Deferred();  // 创建延迟对象
     7 dtd.resolve();         //改变延迟对象,延迟对象解决
     8 dtd.done(b).done(function(){
     9     console.log("b is done");
    10 });
    11 
    12 test
    13 
    14 b is done

    deferred.fail()

    当延迟对象拒绝时被调用

    1 var dtd = $.Deferred();
    2 dtd.reject();
    3 dtd.fail(function(){console.log("fail")});
    4 
    5  fail

    deferred.resolve()

    将延迟对象置为解决,并可执行回调函数;

    deferred.reject()

    拒绝延迟对象,并执行回调函数;

    deferred.state()

    确定一个延迟对象的当前状态。这个方法不接受参数,只返回一个字符串,为以下三个:

    resolved:表示延迟对象在解决状态;

    rejected : 表示延迟对象为拒绝状态;

    pending : 表示延迟对象尚未解决状态;

    deferrred.then()

    当Deferred(延迟)对象解决,拒绝或仍在进行中时,调用添加处理程序。

    例子:

     1 function a1() {
     2             var dtd = $.Deferred(); 
     3            console.log("aa");
     4                 dtd.resolve(); 
     5             
     6             return dtd;
     7         }
     8 
     9 var an= a1();
    10 
    11         an.then(function() {
    12             console.log("an");
    13     })
    14 
    15 aa
    16 
    17 an

     

     

  • 相关阅读:
    工厂模式简介
    设计模式
    idea的安装与配置及基本用法
    软件架构设计的七大原则
    C#设计模式开启闯关之路
    基础知识详解系列目录
    .Net Core2.2 使用 AutoMapper进行实体转换
    通俗易懂设计模式解析——解释器模式
    通俗易懂设计模式解析——备忘录模式
    通俗易懂设计模式解析——访问者模式
  • 原文地址:https://www.cnblogs.com/benstos/p/6405825.html
Copyright © 2011-2022 走看看