jq之deferred方法

jQuery中的deferred对象和extend方法详解 1 deferred对象 deferred对象是jQuery的回调函数解决方案,它是从jQuery1.5.0版本开始引入的功能 deferred对象的方法 (1) $.Deferred() 生成一个deferred对象。 (2) deferred.done() 指定操作成功时的回调函数 (3) deferred.fail() 指定操作失败时的回调函数 (4) deferred.promise() 没有参数时,返回一个新的deferred对象,该对象的运行状态无法被改变;接受参数时,作用为在参数对象上部署deferred接口。 (5) deferred.resolve() 手动改变deferre 立即下载
<html>

<script src="./jQuery-min-v3.3.1.js"></script>



<body>



    <h1 class="click-me">测试jq的$.Deferred()方法</h1>

    <p>摘抄于:https://www.cnblogs.com/guoyansi19900907/p/5000267.html</p>

</body>

<script>

    (function () {

        //目标:先执行when中的方法,再执行done/fail中的内容

        //1、

        // function delayOne () {

        //  setTimeout (function () {

        //      console.log('执行啦');

        //  }, 2000)

        // }

        // $.when( delayOne () ).done( function () {

        //  console.log('o---yes');

        // }).fail( function () {

        //  console.log("o---no");

        // })

        //先执行 'o---yes'; 2s后执行 '执行啦'



        //2、

        // var dfd = $.Deferred();

        // function delayTwo (dfd) {

        //  var flag = true;

        //  setTimeout (function () {

        //      console.log('执行啦');

        //      if (flag) {

        //          dfd.resolve ('yes')

        //      } else {

        //          dfd.reject ('no')

        //      }

        //  }, 2000)

        //  return dfd

        // }

        // $.when( delayTwo (dfd) ).done( function (value) {

        //  console.log('o---yes-->',value);

        // }).fail( function () {

        //  console.log("o---no--->",value);

        // })

        // '执行啦' 'o---yes--> yes'

        //3、

        // var dfd = $.Deferred(); //全局变量

        // function delayTwo (dfd) {

        //  var flag = true;

        //  setTimeout (function () {

        //      console.log('执行啦');

        //      if (flag) {

        //          dfd.resolve ('yes')

        //      } else {

        //          dfd.reject ('no')

        //      }

        //  }, 2000)

        //  return dfd

        // }

        // $.when( delayTwo (dfd) ).done( function (value) {

        //  console.log('o---yes-->',value);

        // }).fail( function () {

        //  console.log("o---no--->",value);

        // })

        // dfd.resolve('捣乱的。。。');

        //resolve直接执行done方法;reject直接执行fail方法

        // 'o---yes--> 捣乱的。。。' ; 2s后执行 '执行啦'

        //4、

        // function delayTwo () {

        //  var dfd = $.Deferred(); //局部变量

        //  var flag = true;

        //  setTimeout (function () {

        //      console.log('执行啦');

        //      if (flag) {

        //          dfd.resolve ('yes')

        //      } else {

        //          dfd.reject ('no')

        //      }

        //  }, 2000)

        //  return dfd

        // }

        // $.when( delayTwo () ).done( function (value) {

        //  console.log('o---yes-->',value);

        // }).fail( function () {

        //  console.log("o---no--->",value);

        // })

        // '执行啦' 'o---yes--> yes'

        //5、

        // function delay() {

        //  var dfd = $.Deferred();

        //  var bool = true;

        //  setTimeout(function () {

        //      console.log("delay的setTimeout执行啦!");

        //      if (bool) {

        //          dfd.resolve("done");

        //      } else {

        //          dfd.reject("fail");

        //      }

        //  }, 2000);

        //  return dfd;

        // }

        // var delay2 = delay();

        // delay2.resolve();

        // $.when(delay()).done(function (value) {

        //  console.log('o---yes-->',value);

        // }).fail(function (value) {

        //  console.log("o---no--->",value);

        // });

        //2s后执行: delay的setTimeout执行啦! delay的setTimeout执行啦! o---yes--> done

        //6、

        // function delay() {

        //  var dfd = $.Deferred();

        //  var bool = true;

        //  setTimeout(function () {

        //      console.log("delay的setTimeout执行啦!");

        //      if (bool) {

        //          dfd.resolve("done");

        //      } else {

        //          dfd.reject("fail");

        //      }

        //  }, 2000);

        //  return dfd.promise ();

        // }

        // var delay2 = delay();

        // delay2.resolve();

        // $.when(delay()).done(function (value) {

        //  console.log('o---yes-->',value);

        // }).fail(function (value) {

        //  console.log("o---no--->",value);

        // });

        //报错

        //7、更改

        function delay(time) {

            return $.Deferred (function (dfd) {

                setTimeout ( function () {

                    console.log('setTimeout执行了');

                    dfd.resolve()

                }, time)

            })

        }

        delay (3000).done( function () {

            console.log('done');

        })

    })()

</script>



</html>

 

RK3568移植AP6256 本文主要是记录RK3568移植正基的AP6256的WIFIBT模块,感兴趣的朋友可以一起学习!!!提示:以下是本篇文章正文内容,下面案例可供参考。 阅读详情

相关推荐

从PCB走线到天线:用史密斯圆图搞定2.4GHz频段的阻抗匹配陷阱

本文深入探讨了2.4GHz频段PCB设计中阻抗匹配的挑战与解决方案,重点介绍了史密斯圆图在射频和天线阻抗匹配中的应用。通过实战案例和详细步骤,帮助工程师有效解决高频信号传输中的阻抗失配问题,提升物联网设备的通信性能。

uuu88的博客 721

Jquery Deferred 详解

学会使用Deferred对象以及其相关函数, 可以优雅的解决开发过程中一些异步执行问题 ----应用篇---- 开发场景 你是否经历过这种代码场景: function demo1(){ ..... const result = demo2(); if(result){ .... }else{ .... } .......

砖厂厂长的烧砖厂 1335

[FreeRTOS+STM32CubeMX] 03 USART串口调试-基于中断实现接收和发送数据

我们接着上一小节,上一节讲到,接收上位机传来的数据时,需要事先知道传来的数据的字节数,这一操作实在有些反人类,那么如何解决这个问题,上位机输入多少,我们就接收多少数据呢? 接下来我将把USART引入中断,在接收数据的回调函数中引入二值信号量、消息队列,来让我的接收数据能够存储在队列中,并一个一个的在任务中输出出来,并最终在上位机回显。

RichieHuang的博客 2649

jQuery中的Deferred详解和使用

首先,为什么要使用Deferred? 先来看一段AJAX的代码: 1 var data; 2 $.get(‘api/data’, function(resp) { 3 data = resp.data; 4 }); 5 doSomethingFancyWithData(data); 这段代码极容易出问题,请求时间多长或者超时,将会导致我...

极客神殿 1万+

深入解析设计规则检查约束:set_max_transition与set_max_capacitance的实战应用

本文深入解析了芯片设计中的关键设计规则检查约束set_max_transition与set_max_capacitance。通过剖析信号转换时间与负载电容的原理,结合实战案例,阐述了如何设置约束以保障信号完整性、控制功耗与时序,并提供了在综合与布局布线阶段的应用策略与修复方法。

weixin_29233857的博客 175

银河麒麟v10-arm SEALOS离线部署k8s集群(v1.22.8)

示例 如果你想保存一个名为 "my_snapshot" 的 etcd 快照到指定的对象路径你可以使用以下命令: sealos etcd save --backupPath /root --name my_snapshot 如果文件名带时间戳:my_snapshot$(date +"%Y%m%d_%H%M%S") 会生成一个形如 20230913_143045 的时间戳。--restorePath string:指定快照恢复目录(默认为 "/opt/sealos/etcd-restore")。

xjudt的博客 3288

JQ的异步——deferred

一、什么是deferred对象 简单说,deferred对象就是jQuery的回调函数解决方案。在英语中,defer的意思是&amp;quot;延迟&amp;quot;,所以deferred对象的含义就是&amp;quot;延迟&amp;quot;到未来某个点再执行。 deferred对象的最大优点,就是它把这一套回调函数接口,从ajax操作扩展到了所有操作。也就是说,任何一个操作----不管是ajax操作还是本地操作,也不管是异步操作还是同步操作----都可以使用d...

沐光之辰 1160

ROS 入门教程:小乌龟仿真器和基础操作

小乌龟仿真器和ros基础操作

zlflll的博客 4125

jquery中的deferred详解

1、deferred的英文意思是:延期的2、deferred的思想:当遇到处理耗时很多的js数据请求时,同步或者异步的操作都可能会碰到,客户端不能一直等待下去,这时候我们的处理思路是给该请求注册一个回调事件,等服务器有结果返回时执行。总之,deferred就是回调方法的解决方案。3、故事背景: 当去超市定购一台家电,因为超市暂时没货需要从别的仓库调货(这时就产生了一个d...

weixin_33943836的博客 172

【AI智能体】Dify 搭建发票识别助手操作实战详解

Dify 搭建发票识别专属助手操作实战详解

congge 5549

华为OD机试双机位C卷-简单的解压缩算法(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【简单的解压缩算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD真题【简单的解压缩算法】。

qq_45776114的博客 475

jQuery.Deferred() 方法

今天在项目中遇到了Deferred()的方法,虽然项目中使用的是dojo,但是其实各个框架都是相通的,以前都没有遇到过,所以今天就在网上找了些资料学习了一下: 定义和用法: $.Deferred() 是一个构造函数,用来返回一个链式实用对象方法来注册多个回调,并且调用回调队列,传递任何同步或异步功能成功或失败的状态。 提示: $.Deferred() 构造函数创建一个新的 Deferred(延迟...

归小超博客 8617

PCL Super4PCS算法实现点云粗配准(版本一)【2025最新版】

Win11系统下实现[Super4PCS: Fast Global Pointcloud Registration via Smart Indexing一文中的配准算法。

点云侠的博客 3378

jquery的异步请求$.Deferred操作

今天记录下jq的异步请求操作,说来也是惭愧,最近才知道jq的异步请求操作(2011年就出来了),可能平时都是用的框架吧,里面都有,用jq用的少,主要是dom的操作,请求也就使用$.ajax。 给之前旧官网翻新时,从后台获取三个下拉框的值,获取后再进行搜索这个操作,直接上代码 var defer1 = $.Deferred(); //在这里定义 var getListOne = function(defer1){ $.ajax({ type: "get", url: "/api/xxxx",

sven_chen93的博客 484

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JQ对象中的延迟对象deferred的详解

在JQ的延迟对象中,$.deferred()有比较多的下辖对象,下面将解析有那些对象,先把deferred封装起来:       var  def = $.deferred();       $.deferred(fn)                               //  代表延迟执行开始前执行的对象fn()       def.done(fn)              

stationalz的博客 1086

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ajax success function_jq: Ajax

jq中的ajax比原生中的好用多了,都是使用一个对象就可以了。<在jQuery的Ajax中使用JSONP$Deferred和Ajax的使用:success和error字段弃用。$再改进: 按顺序执行$always() 不管成功还是失败统一执行。$还有jQuery.get()jQuery.post()的简写。...

weixin_39924307的博客 92

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jquery的when和Deferred方法

jQuery(function($){ /*当两个异步方法都执行完毕后,执行回调*/ $.when(ajax1(),ajax2()).done(function(){ alert("done"); }); function ajax1(){ var dtd = $.Deferred(); $.get("/test/t1").done(function(a,b

多少春秋风雨改 多少崎岖不变爱 3784

jQuery Deferred异步回调

在前端开发过程中,经常会遇到一些操作callback,需要在某一个操作condition之后执行,而某一个操作condition又是耗时的,为了满足这样的需求,常用的做法就是前置操作完成了,再调用callback回调的方法。如下: function callback(){     console.log("callback"); } function condition(){     setT...

feinifi的博客 504

jq Deferred的源码实现

Deferred的实现主要是依靠jq的callbaks方法的,他是对callbacks的封装,先来看看callbacks的一段小代码 var cb = $.Callbacks(); cb.add(function(a){ console.log(a) }); cb.fire('hello world')// 输出a值,hello world;cb.add(funct...

dnupxbs874468的博客 198

【jquery】jq里deferred与ES6promise的异同

背景 最近研究jquery发现jq很早就有类似promise的功能了,我jq用的比较少,主要拿来学习设计思想。 这个jq的$ajax自1.5以后会返回延迟对象,可以使用.done之类的延迟对象使用的方法来进行后续操作。 主要还是看$.deferred这个函数,这个函数其实是基于$.callback这个来实现的。 我们把deferred进行简化一下,看这玩意跟promise到底有啥区别。 使用 ...

不忘初心,坚定道路! 656

jq控制两个函数执行的前后顺序——deferred对象

开篇先写中心:借助deferred对象,jq可自主控制不同函数之间执行顺序。 问题场景 经历过一些项目后,我们经常会遇到一类问题:有两个函数a和b,我们总是希望a函数运行成功后,再调用b函数,或者b函数中某个参数,需要用到a函数产生的数据,而不得不等待a函数执行结束,归根结底,我们需要的是a函数和b函数甚至c函数有限制好的执行顺序。 setTimeout():最初遇到这类问题,我可能会依赖于setTimeout()方法,但是用setTimeout改变函数执行顺序会出现很多问题,首先是时间设定,可能过短,导

关注前端,关注原创 1399

JQ中的延迟对象deferred中的promise等的使用

一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。通常的做法是,为它们指定回调函数(callback)。即事先规定,一旦它们运行结束,应该调用哪些函数。但是,在回调函数方面,jQuery的功能非常弱。为了改变这一点,jQue

heshan1992的博客 487

JQ 控制方法执行顺序的几种方法 JQ 队列 JQ方法 JQ执行顺序

很久之前我就意识到很多时候我们都需要控制一下这个jq方法的执行顺序,或者是遇到了嵌套地狱,无法复用的问题 多方查找后找到了Deferred(从jQuery 1.5.0版本开始引入的一个新功能) 简单说一下使用方法: 首先注册var def = $.Deferred(); 注册后var prs1 = def.then(自定义函数); var prs2 = prs1.then(...

@惊蛰的博客 3830

jq: callbacks/deferred

callbacks 多个回调函数 管理回调函数 回调对象 function wakeUp() { console.log('早上好') } function eating() { console.log('吃早饭') } var cd = $.Callbacks('unique'); // 返回一个对象 可使用add在里...

u012872771的博客 169

JQ的deferred对象

首先列出以下会涉及到的,该对象的一些方法的使用或相关联的其他方法, deferred.done() deferred.fail() deferred.catch() deferred.then() $.when() deferred.notify() deferred.progress() deferred.resolve() deferred.reject() deferred.always...

heartOfblack 离开了电脑,我不希望我还有病 533

jq deferred

deferred promise

magicfly9527的专栏 557
上一篇: vue + iview + select + 本地搜索或远程搜索
下一篇: 50个必备的实用jQuery代码段(转载)
github_39598787
博客等级 码龄9年 11粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值