Наблюдаемая функция не вызывается - PullRequest
0 голосов
/ 24 мая 2018

Мне нужно выполнить getData(), а затем продолжить еще один вызов getOtherData Но у меня проблема с тем, что мой getData() не выполняется.Также мне нужно вернуть данные из this.service.getOtherData(), поэтому я не могу использовать .subscribe() Вот как я составил свои операторы.

Мой первый звонок мне нужно сделать:

public getData(): Observable<string> {
    return this.http.get<string>(apiUrl)
}

Не работает:

myFunction() {
    this.service.getData().pipe(
        tap(data => {
            doStuff(data); // not getting here
        }),
        switchMap(() => {
            return this.service.getOtherData().pipe(
                tap((data) => {
                    sc.dispatch(new DoSomethingElse(data));
                }),
                catchError(err => of(tap(() => {})))
            );
        })
    );
}

Есть мысли как исправить?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Попробуйте это:

public getData(): Observable<string> {
    return this.http.get<string>(apiUrl).subscribe();
}
0 голосов
/ 24 мая 2018

Вам нужно позвонить .подписаться, чтобы позвонить,

this.dataService.getData()
      .pipe(
        tap(console.log),
        tap(data => doStuff(data)))
      ).subscribe();
...