我正在尝试列出所有串行端口并选择以 /dev/cu.usbmodem 开头的端口名称。对于上下文;这是一个连接到 RaspberryPi 运行节点的 arduino。Raspberry Pi 习惯于每次重新启动时重命名端口。
到目前为止,我有这个:
com.list(function (err, ports) {
ports.forEach(function(port) {
var arduinoPort = port.comName;
if (arduinoPort.substring(0, 16) == "/dev/cu.usbmodem") {
var SERIALPORT_ID = arduinoPort;
}
});
});
由于 SERIALPORT_ID 变量尚未声明,这需要足够长的时间以致下一条语句失败;
var serialPort = new com.SerialPort(SERIALPORT_ID, {
baudrate: 57600,
parser: com.parsers.readline('\r\n')
});
什么回调或结构化技术会使第二个语句等待第一个语句在执行之前声明变量?