上のすべての保留中の$ HTTPリクエスト私はDataService
を持っているの中止:角度4:例えば、ルート変更
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
@Injectable()
export class DataService {
constructor(private http: Http) {}
getData(): Promise<any[]> {
return this.http.get('/api/data')
.toPromise()
.then(response => {
const js_res = response.json();
if (js_res.data){
return js_res.data as any[];
} else {
throw new Error(js_res.info || response.text);
}
})
.catch(err => { console.log(err); });
}
}
このDataService
は、各ルートで何度も呼び出されます。ユーザーがルートを変更すると、多くのリクエストが保留になる可能性があります。古いルートのすべての保留中のリクエストを中止したいと考えています。
私は角度4で新しいです、正しいアプローチは何ですか?
は 'たぶん私は間違っているんだけど、それはルート変更に破壊されない、観察できるから退会または –
を約束@RahulSinghが、これは、注射サービスですonNgDestroy'。 – ar099968
あなたはあなたのコンポーネントでこれを使用して、登録を解除する必要があります。そうでなければ、インターセプタに行きます。 –