Javascript 将promise与angularjs用户筛选器一起使用
我有一个用户过滤器。您可以看到下面的模拟示例(它返回与它获得的数据相同的数据,即用户\u数据\u内容,实际上存在函数调用): 我需要在异步模式下使用它,但不太了解如何使用。我试过这样的方法: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
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
根本得不到任何东西。它没有返回语句。您能定义一下异步模式的含义吗。我搞不懂你想达到什么目的。你的意思是你想回报一个承诺吗?