【发布时间】:2015-07-12 07:49:33
【问题描述】:
我有一个返回 jQuery 承诺的函数。它看起来像这样:
addBooks(books: Array<Books>) {
return $.ajax({
url: '/Books/AddBooks/',
type: 'POST',
data: ko.toJSON(books),
contentType: 'application/json'
});
}
我这样做是为了重用这个函数和链式 promise 回调,例如:
addBooks.done(() => { alert("Books added!"); })
我的问题是,如果我想尽早脱离 addBooks 并防止访问服务器怎么办。例如:
addBooks(books: Array<Books>) {
// An empty array was passed in for some reason.
// Theres nothing to add so dont try to POST
if (books <= 0) return null;
return $.ajax({
url: '/Books/AddBooks/',
type: 'POST',
data: ko.toJSON(books),
contentType: 'application/json'
});
}
我的示例无法编译,因为我的链式完成回调示例期望 addBooks 返回一个承诺对象,而不是 null。我怎样才能返回一个空的承诺(或者在这种情况下我应该返回什么正确的对象)?
【问题讨论】:
标签: javascript jquery ajax typescript jquery-deferred