私が期待どおりに働いて迎撃Angular4:ここで設定するのHttpClientのインターセプターを使用してスピナー
@Injectable()
export class ApiInterceptor implements HttpInterceptor {
constructor(private _globalSpinnerService: GlobalSpinnerService) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const spinnerParam: string = req.params.get("spinner")
let handleObs: Observable<HttpEvent<any>> = next.handle(req)
if(spinnerParam) {
this._globalSpinnerService.spinner = true
handleObs.toPromise().then(() => {
this._globalSpinnerService.spinner = false
})
}
return handleObs
}
}
経由で直接スピナーを処理するために書いた迎撃。しかし、私はスピナーが2回送られてくるという私の要求をすべて見ています。だから私はスピナーを取り除くための自分のやり方が最善ではないと思う。ハンドルが終了したら、私のスピナーを取り除くためにインターセプターにどのように伝えることができますか?
はEDIT:
は、私は私のhandleObs.toPromise().then
handleObs.do()
によると、それは今働いて罰金を交換することにより、コードを変更しました。私はちょうどなぜわからない
私が実際にカウンターを使用していますブール値ではありません:)それはもっと簡単にするだけでしたが、仲間を歓迎しました! – Scipion
私の場合、 '.do'を使うとうまく動作せず、私の' requestCount'が減少しません。 –
@HristoEnev私は、あなたの特定のケースで質問をし、それに対してhttp://stackoverflow.com/help/mcveを提供することをお勧めします。 – estus