承诺完成后,我无法执行if
语句。即使在使用$.when.apply(null, [promise goes here]).then()
之后;也不按顺序工作。我哪里错了?
self.model.findGuests(expense.ExpNumber)
.then(function (expReportGuests) {
return expReportGuests && expReportGuests.length > 0;
});
var hasItemizeOrGuests = this.options.selectedExpenses.some(expense => (expense.ItemizedLines && expense.ItemizedLines.length)
|| ($.Deferred().resolve(self.model.findGuests(expense.ExpNumber)
.then(function (expReportGuests) {
return expReportGuests && expReportGuests.length > 0;
}).promise())));
if (hasItemizeOrGuests) {
// do something
}
答案 0 :(得分:0)
hasItemizeOrGuests
似乎是异步设置的。当您的代码到达if
语句时,hasItemizeOrGuests
(可能!)仍未定义。这可能就是声明没有执行的原因。