gpt4 book ai didi

rxjs - 如何在 RxJS 中使单个事件发出多个项目?

转载 作者:行者123 更新时间:2023-12-01 22:12:07 26 4
gpt4 key购买 nike

我使用 RxJS 将 SVG 图形和鼠标/触摸事件绑定(bind)在一起。

挑战之一是在 iOS 上,单个 touchstart 事件可以携带多个触摸数据。当只有一个时,我可以简单地使用 select 并将每个 TouchEvent 转换为可观察的坐标(即每次触摸开始都会启动一次新的拖动)。但是我怎样才能从单个事件中向可观察对象添加 2 或 3 个条目呢?

不确定 flatMap 是否是问题。也许 selectMany 是?我读过这些手册,但它们……有点纠结,而且充满了流利的语言。

有问题的行是 these 。如果您有兴趣使浏览器中的交互式 SVG 图形更易于编程,欢迎为该项目提供帮助!

最佳答案

selectManyflatMap 相同。RxJS提供了一些例子,同样是Drag'n'Drop,你可以找到它here .

如果这不能满足您的需求,您可以使用 Rx.Subject发送通知,例如

var oneSubject = new Rx.Subject();
var otherSubject = new Rx.Subject();
someObservable.subscribe(function(x) {
oneSubject.onNext('hello');
otherSubject.onNext(42);
});

// subscribe to oneSubject or otehrSubject

编辑如果您的意思是“一个事件到多个项目”您得到一个 x 并且想要发送 n 次 x,那么您也可以使用 repeat ,例如n = 10

someObservable.flatMap(function(x) { return Rx.Observable.repeat(x, 10); });

关于rxjs - 如何在 RxJS 中使单个事件发出多个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com