功能执行完成后计算功能 - 数据结果存在不返回总是正确的结果

时间:2015-05-12 12:41:00

标签: angularjs typescript angular-promise

这并不是使用promisses的情况 - 因为结果是许多服务调用的结果 - 在rder中填充汽车数组。制作

<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]正在计算另一种方法并显示服务调用的结果。这就是我开车的原因。如果电话没有发生,那么这应该是真的。

当我对GetStatus()函数有更多调用时,其中一些函数会返回&#39;&#39;因此,即使经过计算整个数组Make的一段时间后总是如此。

1 个答案:

答案 0 :(得分:1)

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

Based on the code you have provided this can only happen if .orElse(Optional.empty) (which I think you already know) OR no make has color code car.Make == null (I think this is the insight you are looking for).