簡體   English   中英

如何在指定時間(計划任務)后調用 Angular js 中的 api 端點?

[英]how to call api endpoint in Angular js after specif time (scheduled Task)?

我有以下服務可以從 API 獲取一些數據,並且工作正常

我在 app.run() 方法中調用此服務

// some code...

$scope.pageStudents;

    $scope.getStudentsPage = function(){

        $http({
              method: 'GET',
              url: 'studentsResource/students'
            }).then(function successCallback(response) {

                $scope.pageStudents = response.data;

              });

    };


    //i want to call this method every 5 min for example.
    $scope.getStudentsPage();

我的問題是如何調用我的$scope.getStudentsPage(); 每 5 分鍾后,類似於預定作業(如 java 中的石英),angular 或 javascript 是否支持這個概念? 請任何人都可以指導我如何實現此操作。 提前致謝。

如果你想進行一次延遲動作,那么你可以使用 angular 的$timeout服務。 如果您希望它多次發生,則可以使用$interval服務。

所以像這樣:

$scope.pageStudents;

$scope.getStudentsPage = function(){
    $http({
        method: 'GET',
        url: 'studentsResource/students'
    }).then(function successCallback(response) {
        $scope.pageStudents = response.data;
    });
};

$interval(function () {
    $scope.getStudentsPage();
}, 300000); // <--- 5 minutes in milliseconds

在純 javascript 中,您將使用 window.setTimeout 或 window.setInterval 來執行此操作。 在 angularjs 中,您應該改為使用 $timeout 和 $interval 服務,因為否則 angularjs 將無法正確運行其更改檢測。

$timeout 和 $interval 的文檔可以在這里找到:
https://docs.angularjs.org/api/ng/service/$timeout
https://docs.angularjs.org/api/ng/service/$interval

對於 setTimeout 和 setInterval 在這里:
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM