📅  最后修改于: 2023-12-03 15:02:09.577000             🧑  作者: Mango
JQuery deferred.resolveWith() 方法用于触发一个或多个被注册回调函数,并把参数传递给它们。该方法还可以改变 deferred 对象的状态为已完成。
deferred.resolveWith(context [, args])
该方法没有返回值。
var deferred = $.Deferred();
deferred.done(function(msg) {
console.log("第一个回调:" + msg);
});
deferred.done(function(msg) {
console.log("第二个回调:" + msg);
});
deferred.resolveWith(this, ["Hello World!"]);
在上面的示例中,我们首先定义了一个 deferred 对象,并在它上面注册了两个回调函数。然后我们使用 deferred.resolveWith() 方法触发这两个回调函数,传递给它们一个字符串参数 "Hello World!"。观察输出结果,我们可以看到两个回调函数都被触发了,输出了相应的消息。
var deferred = $.Deferred();
deferred.done(function() {
console.log("done1");
}).done(function() {
console.log("done2");
}).fail(function() {
console.log("error1");
}).fail(function() {
console.log("error2");
}).always(function() {
console.log("always");
});
deferred.resolveWith(this);
在上面的示例中,我们定义了一个 deferred 对象,并在它上面注册了多个回调函数。然后我们使用 deferred.resolveWith() 方法触发了这些回调函数,并没有传递任何参数。观察输出结果,我们可以看到 done1、done2 和 always 这三个回调函数都被触发了,输出了相应的消息。而 error1 和 error2 这两个回调函数则没有被触发,因为 deferred 对象的状态没有改变为已失败。