Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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/1/angularjs/20.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 如何显示加载器,并在某些进程完成后显示?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何显示加载器,并在某些进程完成后显示?

Javascript 如何显示加载器,并在某些进程完成后显示?,javascript,angularjs,Javascript,Angularjs,我试图显示加载程序,并使所有进程等待,直到它到达最后一行。当它到达流程的最后一行时,我只是简单地resolveit。这样我就可以知道已经完成了。然后,我使用然后隐藏加载。但是我认为加载程序(在根范围内)没有显示,因为循环的执行速度比事件处理程序快。如何实现显示加载程序并等待进程完成,然后使用JavasScript或AngularJs隐藏加载程序 $scope.$emit("loading.show"); let promise1 = new Promise(function

我试图显示加载程序,并使所有进程等待,直到它到达最后一行。当它到达流程的最后一行时,我只是简单地
resolve
it。这样我就可以知道已经完成了。然后,我使用
然后
隐藏加载。但是我认为加载程序(在根范围内)没有显示,因为循环的执行速度比事件处理程序快。如何实现显示加载程序并等待进程完成,然后使用JavasScript或AngularJs隐藏加载程序

$scope.$emit("loading.show");
let promise1 = new Promise(function (resolve, reject) {
       
        $timeout(function () { 
            if ($scope.rateCard.clientele !== undefined && $scope.rateCard.clientele.id !== 0) {
                for (var j = 0; j < $scope.gridData.length; j++) {
                    var value = $scope.rateCard.clientele.name;
                    var gridIndex = $scope.gridData[j].findIndex(function (x) {
                        return x.field == 'clientele';
                    });
                    if (gridIndex > -1) {
                        $scope.gridData[j][gridIndex].data = value;
                    }
                }

            }  
            //do a lot of stuff.. 
           resolve("success");
        }, 200);
    });

promise1.then(function (x) {
    console.log("finished");
    $scope.$emit("loading.hide");  
});

$scope.$emit(“loading.show”);
let promise1=新承诺(功能(解决、拒绝){
$timeout(函数(){
如果($scope.rateCard.clientele!==未定义&&$scope.rateCard.clientele.id!==0){
对于(var j=0;j<$scope.gridData.length;j++){
var值=$scope.rateCard.clientele.name;
var gridIndex=$scope.gridData[j].findIndex(函数(x){
返回x.field==“客户”;
});
如果(gridIndex>-1){
$scope.gridData[j][gridIndex].data=value;
}
}
}  
//做很多事情。。
决心(“成功”);
}, 200);
});
承诺1.然后(功能(x){
控制台日志(“完成”);
$scope.$emit(“loading.hide”);
});

尝试增加超时长度。200毫秒相当快。它可能会像预期的那样工作。尝试增加到2000。@tbone849您的意思是代码没有问题,但时间延迟?可能是问题所在。时间延迟可能很小,您可能看不到加载程序。