首页
学习
活动
专区
圈层
工具
发布

Promise接口实现之jQuery 的deferred对象

它的核心思想就是让非同步操作返回一个对象,其他操作都针对这个对象来完成。...Jquery中的promise的实现——deferred对象 deferred对象是jQuery的回调函数解决方案,它解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口。...注意,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作。...state方法 state方法用来返回deferred对象目前的状态,deferred对象有三种状态:操作还没有完成、操作成功、操作失败,对应state方法的返回值为:pending、resolved、...注意如果when()它的参数返回的不是一个Deferred或Promise对象,那么when方法的回调函数将立即运行。 普通函数如何使用回调函数呢?

1.1K100

Promise接口实现之jQuery 的deferred对象

它的核心思想就是让非同步操作返回一个对象,其他操作都针对这个对象来完成。...Jquery中的promise的实现——deferred对象 deferred对象是jQuery的回调函数解决方案,它解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口。...注意,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作。...state方法 state方法用来返回deferred对象目前的状态,deferred对象有三种状态:操作还没有完成、操作成功、操作失败,对应state方法的返回值为:pending、resolved、...注意如果when()它的参数返回的不是一个Deferred或Promise对象,那么when方法的回调函数将立即运行。 普通函数如何使用回调函数呢?

79710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Promise对象的创建与使用

    为什么要使用promise?...它指定回调函数的方式更加灵活,当new出一个promise的时候,这个任务就立刻开始执行了,后面的回调函数会在异步执行完后进行回调,在没有promise之前就不一样了:必须在启动异步任务之前指定回调函数...,而有了promise:启动异步任务=>返回promise对象=>给promise对象绑定回调函数(甚至可以在异步操作完成后) promise支持链式调用,可以解决回调地狱的问题(回调函数嵌套调用),...如果想更加通俗易懂,可以使用async/await的方式进行改进 const p = new Promise((resolve,reject)=>{ //执行异步操作任务...数据 onResolved console.log('成功的回调',value) }, reason =>{//接受得到失败的reason数据

    1.3K10

    jQuery的deferred对象

    一、什么是deferred对象? 简单说,deferred对象就是jQuery的回调函数解决方案。deferred对象的含义就是”延迟”到未来某个点再执行。...XHR对象,没法进行链式操作 “> 1.5” 返回的是deferred对象,可以进行链式操作 新的写法是这样的: $.ajax({url:"baidu.com", type:"get"})...PS:ajax操作,deferred对象会根据返回结果,自动改变自身的执行状态 七、deferred.promise()方法 在原来的deferred对象上返回另一个deferred对象,后者只开放与改变执行状态无关的方法...; dtd.resolve(); // 改变deferred对象的执行状态   };   setTimeout(tasks,5000); return dtd.promise(...deferred.done() 指定操作成功时的回调函数 deferred.fail() 指定操作失败时的回调函数 deferred.promise() 没有参数时,返回一个新的deferred对象,该对象的运行状态无法被改变

    1.1K41

    jQuery对象的使用

    一、什么是jQuery对象 jQuery对象是由选择器选择的HTML元素的集合。它是一个类似数组的对象,可以对其进行遍历和操作。通过使用jQuery选择器选择元素后,将返回一个jQuery对象。...二、创建jQuery对象 创建jQuery对象最常见的方式是使用选择器。选择器可以是CSS选择器、ID选择器、类选择器等。CSS选择器 使用CSS选择器选择HTML元素,并将其包装成jQuery对象。...三、jQuery对象的方法和属性 jQuery对象提供了许多方法和属性,用于对选择的元素进行操作。方法 jQuery对象的方法可以用于修改元素的样式、内容、属性等。...属性 jQuery对象还提供了一些属性,用于访问和操作选择的元素的特定属性。...四、遍历jQuery对象 jQuery对象可以通过遍历来访问其中的元素。可以使用each()方法来对jQuery对象进行遍历。

    1.4K10

    【JQuery框架】JQuery对象和JS对象的区别和转换

    目录 jQuery的概念 jQuery快速入门 1、下载jQuery 2、导入JQuery的js文件 3、jQuery的使用 jQuery对象和JS对象区别与转换 jQuery转为js  js转为jQuery...你好呀,我是灰小猿,一个超会写bug的程序猿! 在了解jQuery对象和JS对象之间的区别和转换前,我们先对jQuery框架进行一个简单的入门。...对象和JS对象区别与转换 相比于JS对象,jQuery对象在操作时更加方便,代码更加简洁 但是需要注意的是:jQuery对象和JS对象的方法是不通用的,那么我们如果想在jQuery中使用js方法,或在js...因此,在这里和大家分享一下jQuery对象和JS对象之间的相互转换 jQuery转为js  使用jQuery对象[索引] 或者 jQuery对象.get(索引)将jQuery对象转化为js对象,即可使用...对象区别与转换的相关内容就先和小伙伴们分享到这里,之后还会继续和小伙伴们分享jQuery的选择器、DOM操作以及jQuery的高级进阶内容。

    5.8K20

    jQuery的deferred对象详解

    jQuery开发团队就设计了deferred对象,来作为回调函数的解决方案。...; } }); $.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作...说明其作用需要先说一下jQuery规定deferred对象的三种执行状态:未完成、已完成和已失败。...解决上述“全局变量”问题:我们使用deferred.promise() 其作用:在原来的deferred对象上返回Promise对象,后者只开放与改变执行状态无关的方法(比如done()方法和fail...没有参数时,返回一个新的deferred对象,该对象的运行状态无法被改变; 接受参数时,作用为在参数对象上部署deferred接口。

    1.3K31

    jQuery的deferred对象详解

    但是,在回调函数方面,jQuery的功能非常弱。为了改变这一点,jQuery开发团队就设计了deferred对象。 简单说,deferred对象就是jQuery的回调函数解决方案。...$.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作。...的提示框,等5秒之后再跳出”执行完毕!”的提示框。 为了避免这种情况,jQuery提供了deferred.promise()方法。...; }); d.resolve(); // 此时,这个语句是无效的 (运行代码示例9) 在上面的这段代码中,wait()函数返回的是promise对象。...(); // 返回promise对象   }; $.when(wait())   .done(function(){ alert(“哈哈,成功了!”)

    86220

    jQuery的deferred对象详解

    $.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作。...的提示框,等5秒之后再跳出"执行完毕!"的提示框。 为了避免这种情况,jQuery提供了deferred.promise()方法。...(); // 返回promise对象   }; var d = wait(dtd); // 新建一个d对象,改为对这个对象进行操作   $.when(d)   .done(function()...; }); d.resolve(); // 此时,这个语句是无效的 (运行代码示例9) 在上面的这段代码中,wait()函数返回的是promise对象。...(); // 返回promise对象   }; $.when(wait())   .done(function(){ alert("哈哈,成功了!")

    1.6K60
    领券