Mam funkcję, którą powtarzam co 10 sekund. To działa dobrze. Pokazuje rozkazy. Teraz chcę funkcję zlecenia przyjęcia. Ale po kliknięciu tego chcę przerwać interwał. A kiedy przyjmie zamówienie zlecenia, chcę ponownie wznowić ten interwał.wstrzymaj interwał kątowy, a następnie wznów
jaki jest najlepszy sposób na zrobienie tego?
mój kod
if ($auth.isAuthenticated()) {
//request
$scope.checkNewOrders = function(){
newOrderService.getNewOrders().then(function (response) {
//console.log(response.data.status);
if (response.data == 'token_error') {
$auth.logout();
}
if (response.data.status == 'success') {
$rootScope.openOrders = response.data.data;
}
if (response.data.status == 'no_orders') {
$rootScope.openOrders = false;
}
});
};
//Put in interval, first trigger after 10 seconds
$interval(function(){
$scope.checkNewOrders();
}.bind(this), 10000);
//invoke initialy
$scope.checkNewOrders();
}
$scope.acceptOrder = function(orderid) {
console.log(orderid);
}
Możesz przekazać zwracaną wartość '$ interval' do' $ interval.cancel', aby anulować interwał. Możesz także po prostu mieć gałąź wewnątrz funkcji interwału, która zwraca i nic nie robi, jeśli ustawiona jest flaga logiczna. –