希望の結果が得られるまで、または12回(たとえば)までウェブサービスのステータスを調べるには、xインターバル秒(3000ミリ秒)ごとに休憩をする必要があります。私は期待状態受け取るとき、または:一定時間間隔で休憩サービスを呼び出して停止する
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);
}
を私は私が停止REST呼び出しをキャンセルし、エラービューに行きたい32秒後に期待される結果を受け取るいけない場合ので、タイムアウトでのMyFunctionを呼び出して別の機能を持っています。
function myFunction2() {
myFunction();
$timeout(function() {
$location.path('/routeWhenStatusReady');
}, 32000);
}
これを改善する方法はありますか? Readyステータスが例えば16秒でOKで、32秒待たない場合は、myFunction2のタイムアウトを終了したい。
ありがとう!
var myTimeout = $timeout
をし、それを終える: