我需要执行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(() => {})))
);
})
);
}
有任何想法如何解决?
答案 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();
}