函数执行完成后计算函数 - 数据结果不存在 return 总是正确的结果

Calculate function after function execution finished - data result exists not return always correct result

这不是真正使用承诺的情况 - 因为结果是许多服务调用的结果 - 为了填充 car.Make

的数组
<td ng-show="IsOK(obj)" class="text-center">
    <img ng-show="GetStatus(obj)==''" src='@Url.Content("~/img/spinner.gif")' />
    <span class="label label-success" ng-bind="GetStatus(obj)"></span>
</td>

 IsValid = (car: Car): boolean => {

        return (car.Title != null && car.Title != '' &&
            car.Condition != null &&
            car.StartDate < car.EndDate);
    }

    GetStatus = (car: Car): string => {

        if (!this.IsValid(car)) {
            return "Invalid";
        }

        if (car.Make == null)
        {
            return '';
        }

        for (var i = car.Make.length - 1; i >= 0; i--) {
            if (car.Make[i].ColourCode == 'G') {
                return car.Make[i].Name;
            }
        }
        return '';
    }

car.Make[i] 正在用另一种方法计算并显示服务调用的结果。这就是为什么我有 car.Make == null 如果调用没有发生,这应该是真的。

当我多次调用 GetStatus() 函数时,其中一些 returns '' 即使在计算整个数组 Make 一段时间后,结果总是如此。

When I have more calls to GetStatus() function some of them returns '' as result always even after some time when the whole array Make is being calculated

根据您提供的代码,这只有在 car.Make == null(我想您已经知道)或没有品牌有颜色代码 G(我认为这就是您的洞察力)时才会发生寻找)。