'Observable<Observable<HttpEvent<any>>>' 不可分配给类型 'Observable<any[]>'
'Observable<Observable<HttpEvent<any>>>' is not assignable to type 'Observable<any[]>'
我想调用一个 http 请求,它必须 return 一个 observable 然后由
一种以特定时间间隔调用的方法,用于进一步...
请考虑这个
订阅者方式
startReceivingMeasurmentLiveDataV2(httpOptions: any,deviceId:number,seriesType:string,aggregation:string,from:string,to:string,pageSize:number,revert:boolean) {
debugger;
if (this.intervalSubscription) {
this.intervalSubscription.unsubscribe();
}
this.intervalSubscription = interval(200)
.pipe(
takeWhile(() => this.alive),
// switchMap(() => this.deviceService.getMeasurmentLiveUpdateCardDataV2(httpOptions,deviceId,seriesType,aggregation,from,to,pageSize,revert)),
switchMap(() => this.deviceService.GetMeasurmentsV2(httpOptions,deviceId,seriesType,aggregation,from,to,pageSize,revert)),
)
.subscribe((liveUpdateChartData: any[]) => {
debugger;
this.liveUpdateChartData = [...liveUpdateChartData];
//console.log("测量数据");
// console.log(this.liveUpdateChartData);
});
}
Http 可观察
GetMeasurmentsV2(httpOptions: any, deviceID: number, seriesType: string, aggregationType: string, dateFrom: string, dateTo: string, pageSize: number, revert: boolean): Observable<any[]> {
let url = `${this.config.apiUrl}/measurement/measurements/series?aggregationType='${aggregationType}'&dateFrom='${dateFrom}'&dateTo='${dateTo}'&pageSize='${pageSize}'&revert='${revert}'&series='${seriesType}'&source='${deviceID}'`
url = url.replace(/'/g,'');
return this.httpClient.get<any>(
url
,httpOptions)
.pipe(map(measurments => {
return observableOf(measurments);
}));
}
问题来了
请帮我解决这个问题?
您现在return嵌套的可观察对象
只是 return 初始可观察对象 return this.httpClient.get<any>(url, httpOptions)
,没有将响应包装在另一个可观察对象中
我想调用一个 http 请求,它必须 return 一个 observable 然后由 一种以特定时间间隔调用的方法,用于进一步...
请考虑这个
订阅者方式
startReceivingMeasurmentLiveDataV2(httpOptions: any,deviceId:number,seriesType:string,aggregation:string,from:string,to:string,pageSize:number,revert:boolean) {
debugger;
if (this.intervalSubscription) {
this.intervalSubscription.unsubscribe();
}
this.intervalSubscription = interval(200)
.pipe(
takeWhile(() => this.alive),
// switchMap(() => this.deviceService.getMeasurmentLiveUpdateCardDataV2(httpOptions,deviceId,seriesType,aggregation,from,to,pageSize,revert)),
switchMap(() => this.deviceService.GetMeasurmentsV2(httpOptions,deviceId,seriesType,aggregation,from,to,pageSize,revert)),
)
.subscribe((liveUpdateChartData: any[]) => {
debugger;
this.liveUpdateChartData = [...liveUpdateChartData];
//console.log("测量数据"); // console.log(this.liveUpdateChartData); }); }
Http 可观察
GetMeasurmentsV2(httpOptions: any, deviceID: number, seriesType: string, aggregationType: string, dateFrom: string, dateTo: string, pageSize: number, revert: boolean): Observable<any[]> {
let url = `${this.config.apiUrl}/measurement/measurements/series?aggregationType='${aggregationType}'&dateFrom='${dateFrom}'&dateTo='${dateTo}'&pageSize='${pageSize}'&revert='${revert}'&series='${seriesType}'&source='${deviceID}'`
url = url.replace(/'/g,'');
return this.httpClient.get<any>(
url
,httpOptions)
.pipe(map(measurments => {
return observableOf(measurments);
}));
}
问题来了
请帮我解决这个问题?
您现在return嵌套的可观察对象
只是 return 初始可观察对象 return this.httpClient.get<any>(url, httpOptions)
,没有将响应包装在另一个可观察对象中