gpt4 book ai didi

jquery - 'rejected' 对于 jqXHR 之外的延迟对象意味着什么?

转载 作者:行者123 更新时间:2023-12-01 04:54:20 24 4
gpt4 key购买 nike

来自deferred.fail() page :

Description: Add handlers to be called when the Deferred object is rejected.

以及示例:

$.get("test.php")
.done(function(){ alert("$.get succeeded"); })
.fail(function(){ alert("$.get failed!"); });

众所周知,我们可以创建 var someObject = $.Deferred();

我的问题:

  • 如果 Deferred 不是 jqXHR,我们如何“拒绝”它?

  • 如何为 jqXHR 以外的延迟对象实现 deferred.fail()

谢谢。

是的,我知道我的英语很糟糕。

最佳答案

.reject() 时,延迟对象将被拒绝或.rejectWith()被调用。

这是一个例子:

var deferred = $.Deferred();
deferred
.done(function() { console.log('done') })
.fail(function() { console.log('failed') });

deferred.resolve(); // <-- will write 'done' to console
deferred.reject(); // <-- will write 'failed' to console

您可以使用 deferreds 使异步函数的行为类似于 $.get() 。例如setTimeout:

function MyTimeout() {
var deferred = $.Deferred();

setTimeout(function() {
// as a demo, this will reject the deferred half the time
if (Math.random() < 0.5)
deferred.reject();
else
deferred.resolve();
}, 2000);
return deferred.promise();
}

MyTimeout()
.done(function() { console.log('done') })
.fail(function() { console.log('failed') });

最后一条语句也可以写成:

MyTimeout().then(
function() { console.log('done') },
function() { console.log('failed') }
);

关于jquery - 'rejected' 对于 jqXHR 之外的延迟对象意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15780446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com