Почему fail() срабатывает, если в $.when() нет ошибки?

Я использую JQuery v2.0.0

Я пытаюсь понять отложенные объекты, и я получил неожиданный результат. Ошибка () сработала, хотя здесь нет видимой или известной ошибки.

function foo1() { alert('testing'); }

$.when(foo1())
  .done(alert('success'))
  .fail(alert('fail'))

Спасибо...

2 ответа

Решение

Вы должны передать свои обратные вызовы как функции:

$.when(foo1())
    .done(function() {
        alert('success');
    }).fail(function() {
        alert('fail');
    });

В настоящее время вы пытаетесь зарегистрировать undefined результат немедленного звонка alert('fail') как твой .fail обработчик.

Хотя вы этого не сказали, вы увидите success а также fail появляются оповещения, которые должны указывать на то, что вы сделали что-то не так;-)

Вместо передачи ссылки на функцию в done а также fail функции, которые вы вызываете их

function foo1() {
    alert('testing');
}

$.when(foo1())
    .done(function () {
    alert('success')
})
    .fail(function () {
    alert('fail')
})
Другие вопросы по тегам