在Angular中使用RxJS来实现持续轮询HTTP请求的解决方案可以使用interval
和switchMap
操作符来实现。下面是一个示例代码:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { interval } from 'rxjs';
import { switchMap } from 'rxjs/operators';
@Component({
selector: 'app-polling',
template: `
Polling Example
{{ data }}
`
})
export class PollingComponent implements OnInit {
data: any;
constructor(private http: HttpClient) {}
ngOnInit() {
// 发起HTTP请求
this.pollData().subscribe(response => {
this.data = response;
});
}
pollData() {
// 使用interval操作符来创建每隔一段时间发起HTTP请求的Observable
return interval(1000).pipe(
switchMap(() => this.http.get('http://example.com/api/data'))
);
}
}
在上面的代码中,我们使用interval
操作符创建一个Observable,它会每隔1秒发出一个值。然后使用switchMap
操作符将这个值映射为一个HTTP请求,并将其结果返回。
注意:在实际应用中,你需要将http.get
的URL替换为你实际的API端点。