Предположим, у меня есть функция fancyParse
, предназначенная для получения ответа, возвращенного сервером, и преобразования его во что-то другое.Эта функция выдает, если ответ не имеет никакого смысла, или если для него установлен специальный флаг «внутренняя ошибка».
Я бы хотел объединить эту функцию в вызов $.post
, чтобы получить новый Deferred
.Эта новая отсрочка потерпит неудачу, если запрос не удастся или fancyParse
сгенерирует.Он будет успешным, если запрос завершится успешно и fancyParse
успешно, и, что важно, передаст результат fancyParse
его обратным вызовам об успешном завершении.
Идеальное решение будет выглядеть примерно так:
$.post('/url', etc).postprocess(fancyParse)
.done(my_done_handler)
.fail(my_fail_handler);
Что-то вроде этого уже доступно, или мне нужно написать такое postprocess
самостоятельно?