switchMap不能用于string observable



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>

此外,虽然我很欣赏问题中的工作示例,但最好编写问题中的代码,而不是仅链接到外部网站。它保证了问题的寿命。

最新更新