Javascript jQuery承诺按顺序执行并后跟其他语句块
我无法在承诺完成后执行Javascript jQuery承诺按顺序执行并后跟其他语句块,javascript,jquery,Javascript,Jquery,我无法在承诺完成后执行if语句。即使使用了$.when.apply(null,[此处有承诺]).then();也不能按顺序工作。我哪里做错了 self.model.findGuests(expense.ExpNumber) .then(function (expReportGuests) { return expReportGuests && expReportGuests.length > 0;
if
语句。即使使用了$.when.apply(null,[此处有承诺]).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
}
hasItemizeOrGuests
似乎是异步设置的。当代码到达if
语句时,hasItemizeOrGuests
仍然没有定义(可能!)。这可能是语句未执行的原因。我想使用hasItemizeOrGuests进行验证,但必须执行承诺才能将布尔值分配给hasItemizeOrGuests变量。但是稍后执行'if'语句时,承诺会将值设置为hasItemizeOrGuests。如何使其按顺序执行