如果您使用多点触控设备(例如Nexus 7)尝试我demo4项目的svg.rx.js,您会注意到SVG圈落在手指后面。
如果有后来的话,我想跳过坐标,但它似乎并不那么简单。据我所知,RxJS并没有真正缓冲这些值。它可能会使我的应用程序的订阅呼叫失效,一旦发生这种情况,就无法取消这些 - 只是让它们运行。
这是一个非常类似的SO问题11010602,但我当然希望将代码保持在最低限度。
一些更有经验的RxJS老师可以就此提出建议吗?我目前正在使用RxJS 4.0.7,相关代码是here。感谢。
我已经阅读了Backpressure with RxJS,但没有一种方法可行。在应用程序端使用.sample
似乎是最好的选择(试图让它工作)。
编辑:
以下是我试图处理它的方式,使用.sample
和Subject
,每次处理一个坐标时都会触发它 - 从而实现同步设备绘图功能的流(希望如此)。我遇到错误类型的东西,因为它最终没有.onNext
。
https://github.com/akauppi/svg.rx.js/blob/backpressure/demo/demo4.js
答案 0 :(得分:1)
我遇到错误类型的东西,因为它最终没有.onNext。
您需要直接在主题上调用onNext,以简化:
var time = "5h 10m",
time_formatted = [0,0,0],
time_array = time.split(' ');
time_array.forEach(function(element){
var i = -1;
if (element.indexOf('h') > -1){
i = 0;
} else if (element.indexOf('m') > -1){
i = 1;
} else if (element.indexOf('s') > -1){
i = 2;
}
if (i != -1)
time_formatted[i] = parseInt(element.substring(0, element.length -1));
});
console.log(time_formatted);
关于表现&遗漏了价值: Rx有一个setInterval (functionExample, 1000),也许可以帮到你。我猜你可以把它提供给requestAnimationFrame scheduler。 dragObs采用调度程序参数。
除此之外,RxJS5应该是很多merge