可观察的函数没有被调用

时间:2018-05-24 01:53:46

标签: angular rxjs observable

我需要执行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 :(得分:0)

你需要调用.subscribe才能调用它们,

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<!-- Console Appender -->
<Console name="Console" target="SYSTEM_OUT">
  <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %M,%C, 
  %-5level %logger{36} - %msg%n" />
</Console>
<!-- File Appender -->
<File name="File" fileName="d:/app.log">
  <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level 
  %logger{36} - %msg%n" />
</File>
</Appenders>

<Loggers>
<!-- Log everything in custom package -->
<Logger name="com.boraji.tutorial.springboot" level="debug" additivity="false">
  <AppenderRef ref="Console" />
  <AppenderRef ref="File" />
</Logger>
<!-- Log everything in Spring Boot -->
<Logger name="org.springframework.boot" level="debug" additivity="false">
  <AppenderRef ref="Console" />
  <AppenderRef ref="File" />
</Logger>

<!-- Log everything in Spring Core -->
<Logger name="org.springframework.core" level="debug" additivity="false">
  <AppenderRef ref="Console" />
  <AppenderRef ref="File" />
</Logger>

<Root level="info">
  <AppenderRef ref="Console" />
  <AppenderRef ref="File" />
</Root>

答案 1 :(得分:0)

试试这个:

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