举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > jquery deferred jQuery deferred.then() 方法

jquery deferred jQuery deferred.then() 方法

2023-03-20 17:20 jQuery教程

jquery deferred jQuery deferred.then() 方法

jquery deferred

jQuery Deferred 对象是一个强大的工具,它可以帮助我们更好地管理异步代码。它可以让我们更容易地处理异步函数的返回值,并且可以让我们更好地处理多个异步函数之间的依赖关系。

jQuery Deferred 对象有三种状态:未完成(pending)、已完成(resolved)和已失败(rejected)。当一个 Deferred 对象进入未完成状态时,它会创建一个 Promise 对象来保存当前的状态。Promise 对象可以用来注册回调函数来监听 Deferred 对象的状态变化。

// 使用 jQuery 的 Deferred 来创建一个 Promise 对象
var promise = $.Deferred();
 
// 注册回调函数来监听 Deferred 的状态变化
promise.done(function(data) {  // resolved 状态时执行的回调函数 
    console.log('Promise resolved with data: ' + data); 
}).fail(function(error) { // rejected 状态时执行的回调函数 
    console.log('Promise rejected with error: ' + error); 
}); 

jQuery Deferred 还提供了一些方法来帮助我们控制异步代码之间的依赖关系。例如,如果你想要在一个异步函数执行完之后再执行另一个异步函数,你可以使用 jQuery 的 when() 方法来将这两个异步函数封装在一个新的 Promise 对象中。

   // 声明需要执行的异步函数   var asyncFunc1 = function() {   return $.ajax({     url: '/some/url'   }); };   var asyncFunc2 = function() {   return $.ajax({     url: '/some/other/url'   }); };    // 使用 when() 方法将这些异步函數封装在一個新的 Promise 对象中   var promise = $.when(asyncFunc1(), asyncFunc2());    // 注冊回調函數監視 Promise 狀態的改動   promise.done(function(data1, data2) {     console.log('asyncFunc1 returned data: ' + data1);     console.log('asyncFunc2 returned data: ' + data2);   }); 

总之,jQuery Deferred 是一个非常有用而又方便易用的工具。它能够帮助我们更好地处理异步代码、处理多个异步函數之间的依存關係、監視 Promise 狀態的改動、并能够根据不同情况采取不同行動。

jQuery deferred.then() 方法

jQuery deferred.then() 方法

jQuery 杂项方法jQuery 杂项方法

实例

添加 .then 方法

$(function () {
    $.
get("test.php").then(
        function
(){ alert("$.get 成功"); },
       
function(){ alert("$.get 失败!"); }
    )
;
})


定义和用法

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


注意:1. 参数可以为 null 。或者使用.done(),.fail()或者 .progress()只设置一种未经过滤的状态或值的回调类型。
2. 从jQuery 1.8开始, 方法返回一个新的 promise ,可以通过一个函数过滤 deferred(延迟)对象的状态和值,用来替换现在过时的deferred.pipe() 方法。
3. 回调是依照他们被添加时的顺序执行的,由于 deferred.then 返回 Promise 对象,可以链接其它的 Promise 对象,包括附加的 .then() 方法。


语法

方法一

deferred.then( doneFilter [, failFilter ] [, progressFilter ] )

方法二

deferred.then( doneCallbacks, failCallbacks [, progressCallbacks ] )

参数 描述
doneFilter Function类型 可选 当Deferred(延迟)对象得到解决时被调用的一个函数。
failFilter Function类型 可选 当Deferred(延迟)对象拒绝时被调用的一个函数。
progressFilter Function类型 可选 当Deferred(延迟)对象生成进度通知时被调用的一个函数。
参数 描述
doneCallbacks Function类型 当Deferred(延迟)对象得到解决时被调用的一个函数或函数数组。
failCallbacks Function类型 当Deferred(延迟)对象拒绝时被调用的一个函数或函数数组。
progressCallbacks Function类型 当Deferred(延迟)对象生成进度通知时被调用的一个函数或函数数组。


实例

更多实例

过滤解决值
过滤解决值。

过滤拒绝值
过滤拒绝值。

链任务
链任务。


jQuery 杂项方法jQuery 杂项方法

阅读全文
以上是名动网为你收集整理的jquery deferred jQuery deferred.then() 方法全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们