Мне интересно, скажите, у вас есть что-то вроде этого
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.ajax({ url: "example.php" })
.success(function(response) { alert("success"); })
// perform other work here ...
// Set another success function for the request above
jqxhr.success(function(response){ alert("second success"); });
Так что я думаю об этом. У меня есть общая функция, которую я хочу использовать для всех своих ответов, которые будут переданы в мой успех.
Эта функция в основном проверяет, обнаружила ли проверка сервера какие-либо ошибки. Если это так, они форматируют его и отображают сообщение.
Теперь мне интересно, могу ли я как-то использовать вторую функцию успеха, чтобы затем делать определенные вещи. Например, один запрос ajax должен добавить строку в таблицу. Так что это должно быть возможно. Я просто делаю то, что у меня есть выше, и во втором успехе я просто добавляю строку.
Однако возможно ли, что если первый успех пройдет и я увижу, что на сервере есть ошибки проверки, я могу предотвратить второй успех?
Вроде, как бы, что-то вроде
If(first success finds errors)
{
// print out errors
// don't continue onto next success
}
else
{
// go to next success
}
Изменить
Я обнаружил, что есть нечто, называемое deferred.reject , и это останавливает его, но мне интересно, как могу ли я указать, чтобы остановить только успех. Поскольку я думаю, что если есть другие отложенные, такие как завершенные, они тоже будут отклонены?