Node.js Node js串行端口获取响应“错误”或“确定”sms调制解调器

Node.js Node js串行端口获取响应“错误”或“确定”sms调制解调器,node.js,promise,sms,modem,node-serialport,Node.js,Promise,Sms,Modem,Node Serialport,我使用的是Wavecom 8端口SMS调制解调器 我的问题是,我想检查在写入AT命令时是否存在错误(例如没有负载平衡或没有插入sim卡),然后它将检查其他可用端口以重新发送SMS 我只想捕获错误或OK输出 我使用了这个函数 function sendSync(port, src) { return new Promise((resolve, reject) => { port.write(src,(err)=>{ if(err){

我使用的是Wavecom 8端口SMS调制解调器 我的问题是,我想检查在写入AT命令时是否存在错误(例如没有负载平衡或没有插入sim卡),然后它将检查其他可用端口以重新发送SMS

我只想捕获错误或OK输出

我使用了这个函数

function sendSync(port, src) {
  return new Promise((resolve, reject) => {
      port.write(src,(err)=>{
        if(err){
          reject(err)
        }
        port.drain()
      });
      port.once('data', (data) => {
        console.log('###############################',data.toString())
          resolve(data.toString());
      });

      port.once('error', (err) => {
        console.log('************************')
          reject(err);
      });
  });
}
function writeSync(serial,cmd){
  return new Promise(function(resolve,reject){
    serial.write(cmd)
    serial.drain()
    serial.once('data',(data)=>{
      var arr = data.toString()
      var str = arr.split(/\r?\n/);
      //console.log(str[1])
      resolve(str[1])
    })
  })
}

我现在使用的是serialport 5.0

我通过创建这个函数来解决我的问题

function sendSync(port, src) {
  return new Promise((resolve, reject) => {
      port.write(src,(err)=>{
        if(err){
          reject(err)
        }
        port.drain()
      });
      port.once('data', (data) => {
        console.log('###############################',data.toString())
          resolve(data.toString());
      });

      port.once('error', (err) => {
        console.log('************************')
          reject(err);
      });
  });
}
function writeSync(serial,cmd){
  return new Promise(function(resolve,reject){
    serial.write(cmd)
    serial.drain()
    serial.once('data',(data)=>{
      var arr = data.toString()
      var str = arr.split(/\r?\n/);
      //console.log(str[1])
      resolve(str[1])
    })
  })
}

您的函数看起来差不多正确。可能问题在于调用
sendSync()
的方式?该函数还输出AT命令以及确认OK或ERROR我只想要OK或ERROR这不是调用者的解释问题吗?如果返回的承诺确定了它的成功之路,那么这就是“OK”。如果它停留在错误路径上,那就是“错误”。