Javascript setTimeout在异步代码中不工作

Javascript setTimeout在异步代码中不工作,javascript,angularjs,asynchronous,settimeout,Javascript,Angularjs,Asynchronous,Settimeout,下面是我的角度控制器代码- $scope.visibility = true; $http.get("/api/getempl").then(function(response){ if (response.status == 200) { $scope.empData = response.data.data; (function(){ setTimeout(function(){ $scope.v

下面是我的角度控制器代码-

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;
        (function(){
            setTimeout(function(){
                $scope.visibility = false;
            }, 4000);
        })();
    }
});
我尝试的是显示加载图像直到数据未提取,并根据响应标记
$scope.visibility
-

.col-md-12(ng-show="visibility")
  h1 LOADING
.col-md-12(ng-show="!visibility")
  // DATA IN TABLE
现在,加载文本总是可见的,因为我希望在获取数据后,在延迟显示表格数据但它不工作后,让我知道我在这里做错了什么。

使用而不是
设置超时

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;
        $timeout(function(){
            $scope.visibility = false;
        }, 4000);
    }
});
请参阅工作示例:

使用而不是
设置超时

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;
        $timeout(function(){
            $scope.visibility = false;
        }, 4000);
    }
});
请参阅工作示例:

使用而不是
设置超时

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;
        $timeout(function(){
            $scope.visibility = false;
        }, 4000);
    }
});
请参阅工作示例:

使用而不是
设置超时

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;
        $timeout(function(){
            $scope.visibility = false;
        }, 4000);
    }
});
请参阅工作示例:

使用$timeout

Angular的window.setTimeout包装器。fn函数被包装到try/catch块中,并将任何异常委托给$exceptionHandler服务

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;

            $timeout(function(){
                $scope.visibility = false;
            }, 4000);

    }
});
使用$timeout

Angular的window.setTimeout包装器。fn函数被包装到try/catch块中,并将任何异常委托给$exceptionHandler服务

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;

            $timeout(function(){
                $scope.visibility = false;
            }, 4000);

    }
});
使用$timeout

Angular的window.setTimeout包装器。fn函数被包装到try/catch块中,并将任何异常委托给$exceptionHandler服务

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;

            $timeout(function(){
                $scope.visibility = false;
            }, 4000);

    }
});
使用$timeout

Angular的window.setTimeout包装器。fn函数被包装到try/catch块中,并将任何异常委托给$exceptionHandler服务

$scope.visibility = true;
$http.get("/api/getempl").then(function(response){
    if (response.status == 200) {
        $scope.empData = response.data.data;

            $timeout(function(){
                $scope.visibility = false;
            }, 4000);

    }
});


为什么不在数据可用时显示数据呢,是什么让你认为你的用户还想再等4秒?@adeneo实际上,当我把数据倒进表中时,有一点闪烁,然后一切都开始了。所以我在做一个延迟。4秒的延迟只是为了测试,为什么不在数据可用时显示数据呢,是什么让你认为你的用户还想再等4秒?@adeneo实际上,当我把数据倒进表中时,有一点闪烁,然后一切都开始了。所以我在做一个延迟。4秒的延迟只是为了测试,为什么不在数据可用时显示数据呢,是什么让你认为你的用户还想再等4秒?@adeneo实际上,当我把数据倒进表中时,有一点闪烁,然后一切都开始了。所以我在做一个延迟。4秒的延迟只是为了测试,为什么不在数据可用时显示数据呢,是什么让你认为你的用户想再等4秒?@adeneo实际上,当我将数据倒入表中时,会有一段时间的闪烁,然后所有事情都会发生。所以我会进行延迟。4秒延迟只是为了测试目的$timeout是异步函数,你是什么意思?我的错..我需要在我的控制器中注入超时..thx+1和绿色勾号:)$timeout是异步函数,你是什么意思?我的错..我需要在我的控制器中注入超时..thx+1和绿色勾号:)$timeout是异步函数,你是什么意思?我的错..我需要在我的控制器中注入$timeout..thx+1和绿色勾选:)$timeout是异步函数,你是什么意思?我的坏..我需要在我的控制器中注入
$timeout..thx+1和绿色勾选:)我的坏..我需要在我的控制器中注入
$timeout
..thx+1My坏..我需要在我的控制器中注入
$timeout
..thx+1My坏..我需要注入
$timeout
$timeout
在我的控制器中..thx+1