是一种异步编程模式,可以用来控制异步任务的执行。它是一个对象,可以接受一个函数作为参数,这个函数会在异步任务完成时被调用。它有三种状态:未完成(pending)、完成(resolved)和拒绝(rejected)。
Deferred对象有两个主要的方法:done()和fail()。done()方法用于在异步任务完成时调用函数,而fail()方法用于在异步任务失败时调用函数。
Deferred对象还有一个then()方法,它可以同时处理异步任务成功和失败的情况。then()方法接受两个函数作为参数,第一个函数用于处理异步任务成功的情况,第二个函数用于处理异步任务失败的情况。
使用Deferred对象可以很方便地控制异步任务的执行,从而更好地实现复杂的异步编程。
// 使用Deferred对象 var deferred = $.Deferred(); // 异步任务 $.ajax({ url: 'xxx', success: function(data) { // 异步任务成功 deferred.resolve(data); }, error: function(err) { // 异步任务失败 deferred.reject(err); } }); // 处理异步任务 deferred.done(function(data) { // 处理异步任务成功的情况 console.log(data); }).fail(function(err) { // 处理异步任务失败的情况 console.log(err); });
上面的代码使用Deferred对象来控制一个异步任务的执行,当异步任务完成时,会调用相应的函数处理结果。
是一种非常有用的异步编程模式,可以更好地控制异步任务的执行,从而实现复杂的异步编程。