📅  最后修改于: 2023-12-03 15:02:09.568000             🧑  作者: Mango
deferred.rejectWith()
方法是 jQuery 中 Deferred 对象的一个方法,该方法用于将 Deferred 对象的状态设置为“rejected”(即失败),并将失败的值传递给任何附加的错误处理函数。
deferred.rejectWith(context, args)
context
:可选参数。指定回调函数执行时的上下文对象(即 this 值)。args
:可选参数。传递给回调函数的参数数组。返回 Deferred 对象本身,以便支持链式调用。
var loading = $.Deferred();
$('#loading').on('click', function() {
$.get('example.php')
.done(function(response) {
loading.resolve(response);
})
.fail(function() {
loading.rejectWith(this, arguments);
});
});
loading
.progress(function(msg) {
console.log('状态更新:' + msg);
})
.done(function(response) {
console.log('成功返回数据:' + response);
})
.fail(function() {
console.log('出错了:' + this.statusText);
})
.always(function() {
console.log('加载完成!');
});
在上面的示例中,我们首先创建了一个 Deferred 对象 loading
,然后在用户点击“加载”按钮时,向后端发起了一个 AJAX 请求。如果请求成功,则使用 loading.resolve() 方法将 Deferred 对象的状态设置为“resolved”(即成功)并将成功的值传递给任何附加的成功处理函数;如果请求失败,则使用 loading.rejectWith() 方法将 Deferred 对象的状态设置为“rejected”(即失败)并将失败的值传递给任何附加的错误处理函数。最后,我们使用 loading.progress()、loading.done()、loading.fail() 和 loading.always() 方法分别处理 Deferred 对象的“进度更新”、“成功完成”、“失败完成”和“无论成功或失败都完成”的状态。
deferred.rejectWith()
方法是 jQuery 中 Deferred 对象的一个方法,用于将 Deferred 对象的状态设置为“rejected”(即失败),并将失败的值传递给任何附加的错误处理函数。它的语法简单,返回值为 Deferred 对象本身,支持链式调用。开发者可以根据具体的应用场景,选择合适的方法来进行状态控制。