怎么用JS实现向设备发送命令的应用

bala7229291 2013-01-16 08:32:07
我有这样一个应用场景,有一台设备,我能向设备发送命令(比如用方法 A和方法B),但该方法不会返回命令成功与否,我还能想设备查询设备状态(比如方法M),设备的状态有几个(比如方法A成功的话会使得设备状态变为X,方法B成功的话会使得设备状态变为Y),实际应用中,当使用方法A使得设备状态变为X之后,才能使用方法B使得状态变为Y,由于方便不能返回状态,只能使用方法A之后,使用方法M不断的读取设备状态,确认转变为X之后,再使用方法B,确认状态变为Y以后整个过程才完成。

由于使用方法A之后,设备需要一点点时间状态才能转变为X,同理方法B也是如此,因此我打算做两个有返回值的新方法a 和 b,a方法想法是这样的:使用方法A之后,每隔一定时间用方法M查询状态是否变为X,如果变为X则a方法返回成功,如果查询一段时间后发现状态没有改变,则认为是超时,返回失败。

另外,使用a,b方法时,必须a方法有准确的返回值之后才能确认b方法是否执行,比如a方法返回超时的时候,就不再使用b方法。


我也简单实现了下,就是发送A方法后,用一个计时器,间隔200ms用M方法查询状态,使用15次即3s之后没有变为状态A则返回超时,现在的问题是js是一个单线程的,进入计时器之后就为异步,a方法在使用A方法之后,进入计时器接着就返回了,而计时器要在3s之后才返回,效果就不一样,我想问的是哪位朋友能帮我解决一下这个问题,或者在我这上面改造,或者另外用新的思路,万般感谢!!
...全文
152 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2013-01-17
  • 打赏
  • 举报
回复
回调函数。。
fzfei2 2013-01-16
  • 打赏
  • 举报
回复
“而计时器要在3s之后才返回”这问题,你要在计时器的调用函数里,判断状态是否调用接下来要执行的方法。。。

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧