微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

switchMap 不适用于字符串 observable

如何解决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 举报,一经查实,本站将立刻删除。