Angularでポーリングを実装しています。
ポーリングを止めるロジックが思いつかないので
ご教示いただけないでしょうか。
import { Injectable } from "@angular/core"; import { HttpClient, HttpHeaders } from "@angular/common/http"; import { Subject, Observable, interval, of } from "rxjs"; import { flatMap, takeWhile, catchError } from "rxjs/operators"; @Injectable({ providedIn: "root" }) export class PollingService { subject = new Subject<any>(); data$ = this.subject.asObservable(); constructor(private http: HttpClient) { this.polling().subscribe(data => { this.subject.next(data); console.log(data); }); console.log("コンストラクタの成功!"); } ngOnInit() {} polling(): Observable<any> { return interval(3000).pipe( flatMap(() => this.http.jsonp( "http://express.heartrails.com/api/json?method=getPrefectures", "callback" ) ), takeWhile(() => true), catchError(e => of({ error: e })) ); } }
あなたの回答
tips
プレビュー