我正在尝试创建一个数据服务,它每隔设定的秒数从我的 API 中提取数据,并返回 API 返回的两种不同数据类型的两个 Observable。我是 Observables 的新手,所以任何帮助都将不胜感激。
我的 API 返回两个 json 对象数组(例如{'Data1':[array of data objects], 'Data2':[array of data objects]}
)。我可以做类似的事情吗?
@Injectable()
export class DataService {
data: any = null;
dataType1: DataType1Model[] = [];
dataType2: DataType2Model[] = [];
service: Observable;
constructor(public http: Http) {}
start() {
this.service = Observable.interval(10000)
.flatMap(() => {
this.http.get('url')
.map(res => res.json())
.subscribe(data => {
this.data = data;
this.processData1(this.data.Data1);
this.processData2(this.data.Data2);
});
})
.subscribe()
}
stop(){
this.service.unsubscribe()
}
getData1() {
return this.dataType1
}
getData2() {
return this.dataType2
}
}
然后在我的组件中,我可以导入 DataService 并调用data1 = DataService.getData1()
?
当 http 请求触发时,该调用是否会是一个可观察的,它将在 10 秒的间隔内继续更新数据?再说一次,我是 observables 的新手,如果这是完全错误的,我很抱歉。