Observables
でAngular 2内でポーリングを実行しようとしています。私はそこに他の多くの答えがあることを知っていますが、私は彼らが私のために働くようにすることはできません。Http Service Observableを使ったポーリング
私はその純粋な理解のことを知っています。したがって、純粋なコードではなく、その答えとその理由についての説明が分かります。
this._service
.get()
.subscribe(
res=> {
this.headers= res.headers;
this.data = res.dataSet;
});
しかし、私の問題は、ポーリングしている:簡単な購読で期待通り、このサービスを呼び出す
test.service.ts
@Injectable()
export class EtlService {
constructor(private http: Http) { }
//Get ETL by status
get(): Observable<EtlByStatus> {
var url = 'someURL';
return this.http
.get(url)
.map(response => {
return {
headers: response.json().data.headers,
dataSet: response.json().data.data
}
});
}
で動作します。私が知る限り、Component
からポーリングを行うことで、サービスをより再利用できるようにする必要があります.HTTPリクエストはシンプルで、さまざまな方法で処理できます。
test.component.ts
pollGet(timer: number = 30000): Observable<GetInterface> {
return Observable.interval(timer)
.switchMap((res) => {
this._service.get();
})
.map(res => res)
.subscribe(res => {
console.log('testing');
})
}
上記戻りres => void is not assignable
とtype void is not assignable to type ObservableInput
。真ん中のゲットラインをリターンに変えようとしましたが、それはエラーを多く返し、subscribe
が関数であるというメッセージを返します。
このように、Observables
をどのようにポーリングに使用しますか? map
、switchMap
、subscribe
という私の理解と、それらがすべてobservable
の一部としてどのように演奏されているかは分かりますが、わかりません。
の可能性のある重複した[観測可能なポーリング?](http://stackoverflow.com/questions/42657380/observable-polling) – stevenvanc
は、それは似ていますが、トップの答えは、間隔を使用していません。 2番目の答えはありますが、コードが何をしているのか、その理由については説明がありません。 – Doug