首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只从客户端获取一次NodeCopter数据?

只从客户端获取一次NodeCopter数据?
EN

Stack Overflow用户
提问于 2015-06-10 23:16:57
回答 2查看 106关注 0票数 1

我只想从客户端(AR.Drone 2.0)获取一次数据,并将其存储在要打印的变量中。我用过:

代码语言:javascript
复制
client.on('navdata', console.log);

但是,当我执行此命令时,会多次打印该命令数据,并且必须停止脚本以停止此进程。如何才能只获得一次数据并将其存储在一个变量中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-10 23:27:27

Client对象继承了EventEmitter,因此您应该能够使用once()侦听导航数据事件一次。要将发出的值存储到变量中,可以执行以下操作:

代码语言:javascript
复制
var _navData;
// ...
client.once('navdata', function (navData) {
    _navData = navData;
});

更新

关于您的评论,我建议您声明一个将导航数据对象作为参数的函数,并将该函数传递给client.once()

代码语言:javascript
复制
var doSomethingWithNavData = function doSomethingWithNavData(navData) {
    console.log(navData);
    // do what ever you want to do with navData...
}

client.once('navdata', doSomethingWithNavData);
票数 2
EN

Stack Overflow用户

发布于 2015-06-10 23:22:57

有两种添加侦听器的EventEmitter方法:.on().once()

  • .on()会主动侦听和捕捉事件,直到调用.removeListener().removeAllListeners()来删除侦听器为止。
  • .once()侦听next事件自动删除(有效运行一次),除非在.removeListener().removeAllListeners()之前调用.removeListener().removeAllListeners()来删除它。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30768938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档