【问题标题】:'Observable<Observable<HttpEvent<any>>>' is not assignable to type 'Observable<any[]>''Observable<Observable<HttpEvent<any>>>' 不可分配给类型 'Observable<any[]>'
【发布时间】:2023-04-10 06:24:01
【问题描述】:

我想调用一个 http 请求,该请求必须返回一个 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 Observable

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);

     
      }));

}

问题来了

请帮我解决这个问题?

【问题讨论】:

  • observableOf 来自哪里?
  • 来自 rxjs 库
  • 我在 rxjs 文档 (rxjs-dev.firebaseapp.com/api) 上根本找不到它。可以提供导入部分吗?
  • 现在只是“of”而不是 observableOf

标签: angular typescript pipe observable httpclient


【解决方案1】:

你现在正在返回一个嵌套的 observable

只返回初始的 observable return this.httpClient.get&lt;any&gt;(url, httpOptions),而不将响应包装在另一个 observable 中

【讨论】:

  • 您使用的是哪个版本的 Angular?
猜你喜欢
  • 2018-04-19
  • 1970-01-01
  • 2021-09-23
  • 2018-08-14
  • 2018-08-30
  • 1970-01-01
  • 2017-08-12
  • 2020-05-28
  • 1970-01-01
相关资源
最近更新 更多