使用rx.js控制键盘事件 [英] Using rx.js to control keyboard events

查看:109
本文介绍了使用rx.js控制键盘事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我有一个简单的问题。 :) 在JavaScript KeyDown中,如果按照os和浏览器相关的速率(从我的测试中)按下重复。
我可以获得Rx和jQuery的RX扩展来接收来自键盘的事件。像这样:



$(document).keydownAsObservable()。select( < span style ="color:blue; font-family:Consolas; font-size:9pt"> function (e ){
return e.which;})。where( function < span style ="color:black; font-family:Consolas; font-size:9pt">
(key){ 返回 (key == 38 || key == 37)})。subscribe( 功能
(){dosomething();});

$(document).keydownAsObservable().select(function (e) { return e.which; }).where(function (key) { return (key == 38 || key == 37) }).subscribe(function () { dosomething(); });

推荐答案

我不确定JS,但在.NET中我可能会这样做:

I'm not sure about JS, but in .NET I'd probably do something like this:

 


keyDown.Take(1)
	.SelectMany(key => Observable.Generate(
		key, 
		_ => true, 
		k => k, 
		k => k, 
		_ => TimeSpan.FromSeconds(1)))
	.TakeUntil(keyUp)
	.Repeat();


这篇关于使用rx.js控制键盘事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆