如何将数据从port.on函数传递到外部变量

时间:2019-04-20 05:40:19

标签: javascript node.js serial-port

我正在尝试将数据内容传递给外部变量  使用#playlist { overflow-y: scroll; height: 544px; } 行。请参见下面的代码。

mat-select

lottoNumber = rndNum;的预期输出是var SerialPort = require('serialport'); const Buffer = require('buffer').Buffer; var port = new SerialPort('/dev/ttyACM0', { baudRate: 9600, parser: new SerialPort.parsers.Readline("\n\r") }); var rndNum = -1; var lottoNumber = -99; // Read the port data port.on('data', function(data) { const buf = Buffer.from(data); rndNum = buf.readUInt8(0,1); if((rndNum > 0) && (rndNum < 41)) { lottoNumber = rndNum; port.close(function (err) { console.log(err); }); } }); console.log(lottoNumber); 的数字,但实际输出是console.log(lottoNumber);,这是错误的。如何将1-40的内容传递给-99?感谢您的帮助!。

1 个答案:

答案 0 :(得分:0)

不熟悉serialport,但是除非调用它,否则将无法访问函数port.on()范围之外的新变量声明。

var lottoNumber = -99

function portable(data){
  var rndNum = Math.floor(Math.random() * Math.max(data))
  lottoNumber = rndNum;
}

console.log(lottoNumber) // will log -99

变量lottoNumber不在Portable()范围内

portable(41)
console.log(lottoNumber) // will log to the console random numbers only if portable() is called 

MDN scope