首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rxjs 6中重写Rxjs 4

在Rxjs 6中重写Rxjs 4
EN

Stack Overflow用户
提问于 2021-01-19 03:57:42
回答 1查看 42关注 0票数 0

如何在Rxjs6中重写这个Rxjs4代码段?

代码语言:javascript
复制
const click$ = Rx.Observable.fromEvent($('.btn'), 'click').share();

click$
  .scan((a, b) => a + 1, 0)
  .bufferTime(4000, null, 3)
  .filter(buffer => buffer.length > 0)
  .concatMap(buffer => Rx.Observable.of(buffer).delay(1000))
  .timestamp()
  .subscribe(console.log);

https://jsbin.com/pacicubeci/1/edit?js,console,output

这是我的尝试:

代码语言:javascript
复制
import { $ } from "jquery";
import { Observable } from "rxjs";
import { bufferTime, filter, scan, concatMap, timestamp } from "rxjs/operators";

const click$ = Rx.Observable.fromEvent($(".btn"), "click").share();

click$
  .scan((a, b) => a + 1, 0)
  .bufferTime(1000, null, 3)
  .filter(buffer => buffer.length > 0)
  .concatMap(buffer => Rx.Observable.of(buffer).delay(1000))
  .timestamp()
  .subscribe(console.log);

https://angularjs-g8w7z9.stackblitz.io

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 04:16:19

我希望这就是你要找的

代码语言:javascript
复制
const click$ = fromEvent(document, "click").pipe(share());

click$
  .pipe(
    scan((a, b) => a + 1, 0),
    bufferTime(1000, null, 3),
    filter(buffer => buffer.length > 0),
    concatMap(buffer => of(buffer).pipe(delay(1000))),
    timestamp()
  )
  .subscribe(console.log);

运算符现在位于pipe中。

https://stackblitz.com/edit/angularjs-qczayg?file=app.js

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65781316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档