事件监听的处理函数中,可以跳转到特定的代码处吗?
我使用 express、serilport 起了一个服务,对外提供 http 接口。
我期望接到 http 请求时,通过串口控制下位机,然后响应 response。
关于串口控制部分,有以下要求:
- 下发串口数据时确认下发结果(回复包)
- 接收串口数据上报时下发回复包
请问:代码的流程上应该怎么设计呢?—— 可以弄成同步的形式吗?
事件监听的处理函数中,可以跳转到特定的代码后吗?比如下发一个串口数据后,在接收到某个包后,回到下发数据的代码后面 继续执行?
1 回复
EP.emit(“goto_label” 可以回到下发数据的代码后面 继续执行
const net=require("net");
const EventProxy= require('eventproxy');
const EP = new EventProxy();
EP.bind("goto_label", function (param,conn) {
console.log(param);
console.log(" goto label");
// get data
conn.write("\nnext command");
});
const server = net.createServer(conn => {
conn.on("data",function( package ) {
console.log("data receive",""+package);
conn.write("reply ack ");
EP.emit("goto_label","param",conn);
});
conn.write("control command start ");
//:label goto_label
console.log('send over');
}).on('error', (err) => {
throw err;
});
server.listen(8080,()=> {
console.log('opened server on', server.address());
});