只从客户端获取NodeCopter数据?
我想从客户端(AR.Drone 2.0)获取数据一次,然后将其存储在要打印的variables中。 我用过:
client.on('navdata', console.log);
然而,当我执行这个命令的时候,数据被打印了不止一次,我不得不停止脚本来停止这个过程。 我怎样才能获得数据一次,并将其存储在一个variables。
客户端对象inheritanceEventEmitter ,所以你应该可以使用once()
只监听一次navdata事件。 要将发射的值存储到一个variables中,可以执行如下操作:
var _navData; // ... client.once('navdata', function (navData) { _navData = navData; });
更新
关于你的评论 ,我build议你声明一个函数,获取一个navdata对象作为参数,并将该函数传递给client.once()
:
var doSomethingWithNavData = function doSomethingWithNavData(navData) { console.log(navData); // do what ever you want to do with navData... } client.once('navdata', doSomethingWithNavData);
有两个用于添加侦听器的EventEmitter方法: .on()
和.once()
。
-
.on()
主动侦听并捕获事件,直到.removeListener()
或.removeAllListeners()
来删除侦听器。 -
.once()
监听下一个事件并自动删除 (有效运行一次 ),除非在.removeListener()
或.removeAllListeners()
之前调用它。