Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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/21.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 将promise与angularjs用户筛选器一起使用_Javascript_Angularjs_Asynchronous_Promise_Angularjs Filter - Fatal编程技术网

Javascript 将promise与angularjs用户筛选器一起使用

Javascript 将promise与angularjs用户筛选器一起使用,javascript,angularjs,asynchronous,promise,angularjs-filter,Javascript,Angularjs,Asynchronous,Promise,Angularjs Filter,我有一个用户过滤器。您可以看到下面的模拟示例(它返回与它获得的数据相同的数据,即用户\u数据\u内容,实际上存在函数调用): 我需要在异步模式下使用它,但不太了解如何使用。我试过这样的方法: var appModule = angular.module('appModule', []) .filter('filter_ghosts', function($rootScope){ function getPromised(){ var cnt

我有一个用户过滤器。您可以看到下面的模拟示例(它返回与它获得的数据相同的数据,即用户\u数据\u内容,实际上存在函数调用):

我需要在异步模式下使用它,但不太了解如何使用。我试过这样的方法:

var appModule = angular.module('appModule', [])
    .filter('filter_ghosts', function($rootScope){    
        function getPromised(){
            var cnt = 0, intrv = setInterval(function() {
                ++cnt;
                if (cnt>10) {
                    return function(users_data_contents){
                        clearInterval(intrv);
                        return users_data_contents;
                    }
                }
                if (cnt > 50) {
                    clearInterval(intrv);
                }
            }, 100);
        }
        getPromised.$stateful = true;
        return getPromised;
    });
<tr ng-repeat="user_data in usersList | filter_ghosts">
    ....
但这不起作用。 应用过滤器的html如下所示:

var appModule = angular.module('appModule', [])
    .filter('filter_ghosts', function($rootScope){    
        function getPromised(){
            var cnt = 0, intrv = setInterval(function() {
                ++cnt;
                if (cnt>10) {
                    return function(users_data_contents){
                        clearInterval(intrv);
                        return users_data_contents;
                    }
                }
                if (cnt > 50) {
                    clearInterval(intrv);
                }
            }, 100);
        }
        getPromised.$stateful = true;
        return getPromised;
    });
<tr ng-repeat="user_data in usersList | filter_ghosts">
    ....

....
有人能帮忙吗? UPD 我的问题最接近的解决方案是:
然而,事实证明,更合适的方法是根本不使用过滤器,而是将中继器绑定到在相应过程中更改的数组。

在作用域中创建一个空数组。然后用过滤器将
ng repeat
绑定到该数组。然后,在异步操作完成后,用值填充该数组。

我认为过滤器不支持承诺。您需要做的是创建一个服务。称之为
getPromised
根本得不到任何东西。它没有返回语句。您能定义一下异步模式的含义吗。我搞不懂你想达到什么目的。你的意思是你想回报一个承诺吗?