gpt4 book ai didi

angularjs - 暂停一个 Angular 间隔,然后恢复

转载 作者:行者123 更新时间:2023-12-02 19:17:30 24 4
gpt4 key购买 nike

我有一个每 10 秒重复一次的函数。这很好用。它显示订单。现在我想要一个接受订单的功能。但是,当单击此按钮时,我想暂停间隔。当接受订单返回时,我想再次恢复此间隔。

最好的方法是什么?

我的代码

    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);
}

最佳答案

您应该创建一个 $interval 的变量:

var timer = null;
$scope.checkNewOrders = function (){ ...

timer = $interval(function(){
$scope.checkNewOrders();
}.bind(this), 10000);

然后在点击函数中,取消计时器:

$scope.acceptOrder = function(orderid) {
$interval.cancel(timer);
timer = null;
}

更新完成后,恢复:

newOrderService.getNewOrders().then(function (response) {
if (timer === null) {
timer = $interval(function(){
$scope.checkNewOrders();
}.bind(this), 10000);
}
...

关于angularjs - 暂停一个 Angular 间隔,然后恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com