我正在使用JQuery v2.0.0
我正在尝试理解延迟对象,但我得到了意想不到的结果。即使此处没有可见或已知的错误,也会触发fail()。
function foo1() { alert('testing'); }
$.when(foo1())
.done(alert('success'))
.fail(alert('fail'))
...谢谢
答案 0 :(得分:8)
您必须将回调作为函数传递:
$.when(foo1())
.done(function() {
alert('success');
}).fail(function() {
alert('fail');
});
目前,您正在尝试立即注册的undefined
结果调用alert('fail')
作为.fail
处理程序。
虽然你没有这么说,但你会看到success
和 fail
警告出现,这应该提示你做错了什么; - )
答案 1 :(得分:3)
而不是将函数引用传递给您正在调用它们的done
和fail
函数
function foo1() {
alert('testing');
}
$.when(foo1())
.done(function () {
alert('success')
})
.fail(function () {
alert('fail')
})