Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 组合可观测数据集';不要进行HTTP调用_Javascript_Angular_Rxjs - Fatal编程技术网

Javascript 组合可观测数据集';不要进行HTTP调用

Javascript 组合可观测数据集';不要进行HTTP调用,javascript,angular,rxjs,Javascript,Angular,Rxjs,我有一个具有3种公共方法的服务。它们取决于this.dossierService.dossierIds的结果dossierIds是返回BehaviorSubject的getter 但TypeScript在所有3种方法中都给了我一个错误,即: Type 'Observable<Observable<void>>' is not assignable to type 'Observable<void>'. Type 'Observable<void>'

我有一个具有3种公共方法的服务。它们取决于
this.dossierService.dossierIds
的结果
dossierIds
是返回
BehaviorSubject
的getter

但TypeScript在所有3种方法中都给了我一个错误,即:

Type 'Observable<Observable<void>>' is not assignable to type 'Observable<void>'. Type 'Observable<void>' is not assignable to type 'void'.
类型“Observable”不可分配给类型“Observable”。类型“Observable”不可分配给类型“void”。

我甚至没有看到我的HTTP请求被触发。我哪里出错了?

没有进行http调用的原因是因为您没有订阅内部可观察对象

1   public deleteMortgageObligation(id: string): Observable<void> {
2     return this.getObligationsUrl(id).pipe(
3       map(dossierIds => {
4         const endpoint = `${this.getObligationsUrl(dossierIds)}/blablabla/${id}`;
5         return this.http.delete(endpoint);
6       })
7     );
8   }

没有进行http调用的原因是您没有订阅内部可观察对象

1   public deleteMortgageObligation(id: string): Observable<void> {
2     return this.getObligationsUrl(id).pipe(
3       map(dossierIds => {
4         const endpoint = `${this.getObligationsUrl(dossierIds)}/blablabla/${id}`;
5         return this.http.delete(endpoint);
6       })
7     );
8   }
1   public deleteMortgageObligation(id: string): Observable<void> {
2     return this.getObligationsUrl(id).pipe(
3       map(dossierIds => {
4         const endpoint = `${this.getObligationsUrl(dossierIds)}/blablabla/${id}`;
5         return this.http.delete(endpoint);
6       })
7     );
8   }
1   public deleteMortgageObligation(id: string): Observable<void> {
2     return this.getObligationsUrl(id).pipe(
3       switchMap(dossierIds => {
4         const endpoint = `${this.getObligationsUrl(dossierIds)}/blablabla/${id}`;
5         return this.http.delete(endpoint);
6       })
7     );
8   }