2016-04-27 9 views
1

$ httpProvider.interceptorsを使用して401または403要求をキャッチし、セッションを終了してログインページにリダイレクトします。タイムアウト機能を持っている機能は、私は401または403応答

答えて

-1

を取得する場合はthisのように、タイマーを保存する必要があります私は実行からこのタイムアウトを停止したい、があります。

var myVar; 

function myFunction() { 
    myVar = setTimeout(function(){ alert("Hello"); }, 3000); 
} 

function myStopFunction() { 
    clearTimeout(myVar); 
} 
+0

ここドキュメントでそれについての詳細を読みますか? – alexey

+0

なぜあなたはあなたがそれをハイライトする必要があると思うか分かりません – alexey

+0

質問が明確に角度をつけたので、 'setTimeout'を使うのは適切ではないので、Downvotedです。 – Duncan

0

することができますタイマを停止するには$timeout.cancel(timer)を使用してください。私はW3へのリンクを残した理由です $timeout

+0

あなたは、ドキュメントへのリンクだけでなく、答えにいくつかの文脈と説明を提供する必要があります。また、将来リンクが無効になる場合は、関連する部分を引用してください。 – Duncan

1

をあなたはかなり簡単にタイムアウトをキャンセルすることができます

var myTimeout = $timeout(function() {}, 1000); 
// Check http status code 
if (someHttpCode === 401){ 
    // Stop the timeout 
    $timeout.cancel(myTimeout); 
} 
+0

キャンセルする機能は、「約束を返すため」ではありません。一般的には、約束を取り消す方法はありません。これは、タイムアウトによって約束された追加機能です。 最近のバージョンのangularjsに注目すると、空の関数を渡す必要はありません。約束を得るために '$ timeout(1000)'を呼び出すことができます。 – Duncan

+0

@Duncan訂正してくれてありがとうございます。 – Grant

+0

私は、タイムアウトを変数に保存することでキャンセルできることを知っています。グローバルメソッドがあるかどうかを知りたいのは、保留中のタイムアウトをすべてフラッシュするだけです。一度変数を保存せずに –

関連する問題