gpt4 book ai didi

javascript - 如何编写对服务的递归调用以定期调用它?

转载 作者:行者123 更新时间:2023-11-28 15:24:33 24 4
gpt4 key购买 nike

我有这个代码:

us.isConnected()
.then(function (msg) { er.msg = msg }, function (msg) { er.msg = msg });
$interval(function () {
us.isConnected()
.then(function (msg) { er.msg = msg }, function (msg) { er.msg = msg });
}, 20 * 1000);

它检查连接,然后输出一条消息。

有没有一种方法可以简化此代码并使其递归,这样我就不必多次编写 .then 部分的代码?

最佳答案

您可以使用 $timeout 而不是依赖 $intervals,它可能会执行多次 isConnected() 请求,而无需等待先前的请求执行请求以完成。

var promise;

// execute testConnection()
testConnection();

function testConnection() {
// run request initially
return request().finally(function() {

// runs the request recursively
// and assign the timeout's promise
// if you need to cancel the recursion
return (promise = $timeout(request, 20 * 1000));

});
}

// request if ui is connected
function request() {
return ui.isConnected()
.then(setErr, setErr);
}

// ser `er` object
function serErr(msg) {
er.msg = msg;
}

// cancels the recursive timeout
function cancel() {
$timeout.cancel(promise);
}

关于javascript - 如何编写对服务的递归调用以定期调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29618354/

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