Экспериментирую со switchMap() из Rxjs 6 в angular 6 Читаю вот эту статью, немного изменил код, т.к. версия Rxjs другая. На предпоследней строчке VS Code подсвечивает ошибку: [ts] Cannot invoke an expression whose type lacks a call signature. Type 'Number' has no compatible call signatures. Вот весь код: Код (Javascript): ngOnInit() { let http1$: Observable<string> = this.simulateHttp("1", 1000); http1$.subscribe( data => console.log(data), null, () => console.log('http1$ completed') ) } simulateHttp(val: string, delay: number): Observable<string> { let obs: Observable<string> = of("str"); return obs.pipe(delay(2000)); } В тоже время, если создать Observble в ngOnInit() вот так (ниже), то все работает: Код (Javascript): ngOnInit() { let http1$: Observable<string> = of("str").pipe(delay(2000)); http1$.subscribe( data => console.log(data), null, () => console.log('http1$ completed') ) }
Блин, сразу не заметил. TypeScript подумал, что я собираюсь вызвать переменную delay: number, передаваемую в метод simulateHttp, как функцию. А я хотел вызвать функцию delay из 'rxjs/operators'. Короче, поменял имя второго аргумента на другое delayTime, чтобы он не терялся в догадках.