jQuery promise执行顺序,然后是其他语句块

时间:2016-01-30 01:17:10

标签: javascript jquery

承诺完成后,我无法执行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
        }

1 个答案:

答案 0 :(得分:0)

hasItemizeOrGuests似乎是异步设置的。当您的代码到达if语句时,hasItemizeOrGuests(可能!)仍未定义。这可能就是声明没有执行的原因。