Javascript 如何每秒从服务发送$http.get请求
我有一个angular应用程序,它有$htto.get请求。它工作正常,但我需要每隔一秒钟执行一次,以获得新数据 服务:Javascript 如何每秒从服务发送$http.get请求,javascript,jquery,angularjs,angular-services,Javascript,Jquery,Angularjs,Angular Services,我有一个angular应用程序,它有$htto.get请求。它工作正常,但我需要每隔一秒钟执行一次,以获得新数据 服务: angular.module('adf.widget.liveCharts') .service('liveChartService', function($q, $http, $timeout){ return { getJSON: function(path){ var deferred = $q.defer();
angular.module('adf.widget.liveCharts')
.service('liveChartService', function($q, $http, $timeout){
return {
getJSON: function(path){
var deferred = $q.defer();
var url = 'http://orbit5.ds.cs.umu.se:8888/vrio/blk';
$http.get(url)
.success(function(data){
if (data){
deferred.resolve(data);
} else {
deferred.reject(data.data.message);
}
})
.error(function(){
deferred.reject();
});
return deferred.promise;
}
}
});
在此处添加控制器以供参考
angular.module('adf.widget.liveCharts', ['adf.provider', 'highcharts-ng'])
.config(function(dashboardProvider){
// template object for github widgets
var widget = {
templateUrl: '{widgetsPath}/liveCharts/src/view.html',
reload: true,
resolve: {
/* @ngInject */
paths: function(liveChartService, config, $timeout){
if (config.path){
return liveChartService.getJSON(config.path);
}
}
},
edit: {
templateUrl: '{widgetsPath}/liveCharts/src/edit.html'
}
};
在您的控制器中,您可以这样做
$interval(function(){
liveChartService.getJSON().then(function(data){
//$scope.data = data;
})
},1000);
在您的控制器中,您可以这样做
$interval(function(){
liveChartService.getJSON().then(function(data){
//$scope.data = data;
})
},1000);
使用$interval可以帮助您-它与vanilla js中的setInterval非常相似-基本上这就是结构 $interval(fn,延迟,[count],[invokeApply],[Pass]) 最后3个参数是可选的,但您需要以毫秒为单位传递函数+延迟时间,您可以使用其中的任何函数,或调用返回另一个函数的函数:
$interval(function(){
liveChartService.getJSON().then(function(data){
//some codes here
})
},1000);
希望它能帮助您…使用$interval可以帮助您-它与vanilla js中的setInterval非常相似-基本上就是这样的结构 $interval(fn,延迟,[count],[invokeApply],[Pass]) 最后3个参数是可选的,但您需要以毫秒为单位传递函数+延迟时间,您可以使用其中的任何函数,或调用返回另一个函数的函数:
$interval(function(){
liveChartService.getJSON().then(function(data){
//some codes here
})
},1000);
希望它能帮助您……$timeout有什么问题吗?如果您需要频繁更新数据,您可能应该查看WebSocket。如果我添加$timeout(函数(路径)…,1000),那么我会收到一个错误liveChartService。getJSON不是我控制器中的函数。。此外,在上面添加控制器这不是创建角度的目的。我强烈建议您不要使用任何黑客/变通方法来获取这样的数据。搜索SingleR,它将更适合您的需要。您可以添加一个指向SingleR的链接$timeout有什么问题吗?如果您需要频繁更新数据,您可能应该查看WebSocket。如果我添加$timeout(函数(路径)…,1000),我不知道如何正确地使用此代码实现超时然后我得到一个错误liveChartService.getJSON不是我控制器中的函数。。此外,在上面添加控制器这不是创建角度的目的。我强烈建议您不要使用任何黑客/变通方法来获取这样的数据。搜索SingleR,它将更适合您的需要。您可以添加SingleR的链接吗