【发布时间】:2017-07-06 19:07:04
【问题描述】:
我需要每隔 x 间隔秒 (3000 毫秒) 进行一次休息调用以查询 Web 服务的状态,直到我得到想要的结果或直到 12 次(例如)或当我收到预期的状态时:
function myFunction() {
var i=0;
var _onSuccess = function(response) {
if (response.status=== 'READY' || i >= 12) {
clearInterval(x);
if(response.status !== 'READY') {
$location.path('/errorView');
}
}
}
var x = setInterval(function () {
$rest.getSomething(_onSuccess)
}, 3000);
}
我有另一个函数调用 myFunction 并超时,因为如果我在 32 秒后没有收到预期的结果,我想取消停止休息调用并转到错误视图。
function myFunction2() {
myFunction();
$timeout(function () {
$location.path('/routeWhenStatusReady');
}, 32000);
}
有什么办法可以改善吗?例如,如果 Ready 状态在 16 秒内正常,我想完成超时 myFunction2,而不是等待 32 秒...
谢谢!
【问题讨论】:
标签: javascript angularjs