Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery承诺按顺序执行并后跟其他语句块_Javascript_Jquery - Fatal编程技术网

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。如何使其按顺序执行