【发布时间】:2016-08-21 17:30:08
【问题描述】:
这可能是一个愚蠢的错误,但在这里。
我需要在 $.ajax() 调用的成功函数中拒绝 jQuery Promise。返回值“success”是一个布尔值。
function doSomething() {
var myPromise = $.ajax({
method: "POST",
url: "/url/to/use",
data: {"value":$("#value").val()},
success: function(data) {
if (data.success == false) {
ConfirmMessage.showErrorMessage(data.messages[0]);
return new $.Deferred().reject().promise();
} else {
// do other stuff
}
}
});
return myPromise;
}
doSomething() 稍后在 then() 链中使用:
doSomething().then(doSomethingElse).then(soOn).then(soForth);
所以我需要能够拒绝承诺并打破链条。
帮助表示赞赏。
【问题讨论】:
-
你不能在一个 ajax 承诺被解决后拒绝它。也许您可以返回另一个在 ajax 回调中标记为已解决或被拒绝的 promise 对象,而不是返回 ajax promise 本身。
标签: javascript jquery ajax