switchMap不能用于string observable。如果我在函数中使用它然后调用该函数,它将不起作用
下面是stackblitz的代码链接:https://stackblitz.com/edit/typescript-btkudb?file=index.ts
您似乎已经导入了RxJSfromEvent
函数,但却选择使用addEventListener()
。我想说fromEvent
更适合这里,因为你试图在RxJS操作符管道到事件。你可以试试
import { interval, fromEvent, of } from "rxjs";
import { map, tap, switchMap } from "rxjs/operators";
fromEvent(<HTMLElement>document.querySelector("#app"), "click")
.pipe(
tap(_ => console.log("clicked")),
map(_ => of("test")), // <-- serves no purpose?
switchMap(() => interval(1000))
)
.subscribe(console.log);
我已经修改了你的Stackblitz。
工作的例子:
var { interval, fromEvent, of } = rxjs;
var { map, tap, switchMap } = rxjs.operators;
fromEvent(document.querySelector("#app"), "click").pipe(
tap(_ => console.log("clicked")),
map(_ => of("test")), // <-- serves no purpose?
switchMap(() => interval(1000))
).subscribe(console.log);
<script src="https://unpkg.com/rxjs@6.4.0/bundles/rxjs.umd.min.js"></script>
<div id="app">abcd</div>
此外,虽然我很欣赏问题中的工作示例,但最好编写问题中的代码,而不是仅链接到外部网站。它保证了问题的寿命。