I was using combineLatest in my project which is working fine. But now it got deprecated. So i was looking for alternate solution. I am trying with "combineLatestWith". But it doesn't accept pipe operator and giving below error:
Property 'pipe' does not exist on type 'OperatorFunction<unknown, [unknown, string, number, boolean]>'
Any reason why I am not able to use pipe operator with combineLatestWith?? Below is my code:
export class TestService implements OnDestroy {
private _viewName$: BehaviorSubject<string> = new BehaviorSubject<string>('');
public depth$: BehaviorSubject<number> = new BehaviorSubject<number>(2);
public graphMode$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
private _loadSubtree$(rootId: string, showGlobalLoadingIndicator: boolean = false): Observable<OprTreeGridItem<CI>[]> {
//Below line has the error
return combineLatestWith(this._viewName$, this.depth$, this.graphMode$).pipe(
tap(() => this._isSubtreeLoading$.next(showGlobalLoadingIndicator)),
switchMap(([viewName, depth, graphMode]) => this._topViewGraphHttpService.getTopViewGraph(viewName, depth, -1, rootId, null, graphMode).pipe(
catchError(() => of([]))
)),
map((topViewGraphDto: TopViewGraphDTO) => topViewGraphDto.graph),
withLatestFrom(this._viewName$, this._pickedCis$.pipe(startWith([])), this.includeViewAsRoot$),
tap(([nodesAndRelationsDto, viewName, pickedCis, includeViewAsRoot]: [TopViewGraphNodesAndRelationsDTO, string, CI[], boolean]) => {
console.log("something")
}),
map(() => {
// some code
})
);
}
}
As per the documentation,
combineLatestWithis an rxjs/operator function which returns anOperatorFunctionand not anObservableThe correct rxjs function that you are probably looking for here is
combineLatestwhich accepts an array of Observables and returns a new Observable