如何解决switchMap 不适用于字符串 observable
switchMap 不适用于字符串 observable。如果我在函数内部使用它然后调用该函数,它将不起作用
下面是代码的stackblitz链接: https://stackblitz.com/edit/typescript-btkudb?file=index.ts
解决方法
您似乎已经导入了 RxJS fromEvent
函数,但选择使用 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,of } = rxjs;
var { map,switchMap } = rxjs.operators;
fromEvent(document.querySelector("#app"),"click").pipe(
tap(_ => console.log("clicked")),// <-- 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>
此外,虽然我很欣赏问题中的工作示例,但最好在问题中编写代码,而不是仅链接到外部网站。它确保了问题的持久性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。