使用child_process
启动子进程,并与子进程通信的时候,发现会有多条打印结果,其原因是:不同的操作会触发stdin.write操作,而每一个操作都需要通过stdout.on来监听返回结果,如果使用stdout.on来监听返回结果,那么会一直处于监听状态。导致在其他操作进行stdin.write进行写操作的时候,也会被其他的stdout.on监听到。导致输出多条数据
代码:
// 钉钉扫码事件
ipcMain.on("ddcode", (event, args) => {
args.port += ""
let cmdStr = '' + JSON.stringify(args) + ''
log.info("钉钉扫码登陆参数:", cmdStr)
child.stdin.write(cmdStr + '\n')
child.stdout.on('data', (data) => {
log.info("钉钉扫码登陆结果: