Я пишу код JS, который использует обещания. Например, я открываю всплывающее окно формы и возвращаю объект jQuery Deferred. Вот как это работает:Когда я должен отказаться от обещания?
Если пользователь нажимает кнопку ОК на форме, и это подтверждает отложенный ПОСТАНОВЛЯЕТ объект, представляющий данные формы.
Если пользователь нажимает «Отмена», то «Отложенное» разрешает нулевое значение.
Что я пытаюсь решить, должен ли Отложенный вместо этого отклонять, а не решать? В более общем плане, мне интересно, когда мне нужно разрешить что-то вроде нулевого объекта, и когда мне следует отклонить?
Вот код, демонстрирующий две позиции:
// Resolve with null.
var promise = form.open()
.done(function (result) {
if (result) {
// Do something with result.
} else {
// Log lack of result.
}
});
// Reject.
var promise = form.open()
.done(function (result) {
// Do something with result.
})
.fail(function() {
// Log lack of result.
});
Похоже на дизайнерское решение, которое идеально подходит в любом случае. –
Я не думаю, что один метод лучше, чем другой, но я обычно связываю «сбой» с чем-то неправильным, например, исключение, а не выбранное значение, то есть неспособность выполнить обещание, а не выполнение обещания с определенным значением. –
@ExplosionPills Да, вот что я пытаюсь получить. Поэтому я должен рассматривать отказ от обещания как ту же серьезность, что и исключение? – cdmckay