すべてのシリアル ポートを一覧表示し、/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')
});
最初のステートメントが変数を宣言するまで 2 番目のステートメントを待機させてから実行するコールバックまたは構造化手法はどれですか?