我正在做一个物联网项目。一个典型的场景是:
- 我需要控制设备移动到坐标 (x, y)
- 然后我需要获取当前坐标来决定下一步做什么。
我使用 MQTT 与设备通信。所以在我的代码中,我表达了这样的操作Blockly
:
//javascript
robot.move(x, y);
if(robot.x > 100) {
// do something...
}
显然,move(..) 方法是一个异步方法,它只是发布命令而不等待完成。
由于消息传递模式,即使我将 move(..) 作为async
函数并应用await
。我仍然认为它不起作用,因为我只得到关于消息由消息代理传递给机器人的回调,而不是机器人确实移动到指定位置。
那么这种情况应该怎么做呢?