2016-08-05 9 views
0

私は異なる状態(異なるコントローラを持つ)を持ち、各状態はAPIからデータを取得します。しかし、要求が解決される前にユーザが退去すると、ハンドラはこの状態にないときに呼び出されます。それは意図されていません。さらに、ハンドラの中には、(最初​​の要求を解決した後に)データをフェッチする$インターバルがありますので、ユーザーは数時間前に離れている間にデータをフェッチしてフェッチし続けます。 私の頭に浮かぶ最初のもの:状態から離れるときにhttpリクエストを停止するか、httpリクエストの結果を処理しない方法は?

let isDestroyed = false; 

    $http.get('/someurl').then(response => { 
    if (isDestroyed) return; 

    processResponse(); 
    }); 

    $scope.$on('$destroy',() => { 
    isDestroyed = true; 
    }); 

他に何ができますか?

答えて

0

Angular docs:

タイムアウト - {数|プロミス} - ミリ秒単位のタイムアウト、または解決場合、要求を中止すべきである約束。

意味:スコープを破壊したときに、約束にタイムアウトを設定 - 約束

を解決
関連する問題