我正在编写一些使用承诺的 JS 代码。例如,我打开一个表单弹出窗口并返回一个jQuery Deferred对象。它是这样工作的:
如果用户在表单上单击“确定”并进行验证,则 Deferred 将解析为表示表单数据的对象。
如果用户单击 Cancel,则 Deferred 解析为 null。
我想要决定的是 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.
});