当前位置:  开发笔记 > IOS > 正文

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

如何解决《如何使单个事件在RxJS中发出多个项目?》经验,为你挑选了1个好方法。

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

其中一个挑战是在iOS上,单个touchstart事件可以携带多个触摸数据.当它只是一个时,我可以简单地使用select并将每个转换TouchEvent为可观察的坐标(即每个触摸开始启动一个新的拖动).但是,如何从单个事件中向观察者添加2个或3个条目?

不确定flatMap是不是.也许selectMany是?我已经阅读了这些手册,但它们......有点纠结,充满了流畅的语言.

有问题的线是这些.如果您有兴趣在浏览器中制作交互式SVG图形更容易编程,欢迎来帮助项目!



1> Martin Seele..:

selectMany是一样的flatMap.RxJS提供了一些例子,也适用于Drag'n'Drop,你可以在这里找到它.

如果这不符合您的需求,您可以使用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,那么你也可以使用重复,例如n = 10

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

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有