Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js中的回调和串行端口_Node.js_Asynchronous_Callback_Serial Port - Fatal编程技术网

Node.js中的回调和串行端口

Node.js中的回调和串行端口,node.js,asynchronous,callback,serial-port,Node.js,Asynchronous,Callback,Serial Port,我有一个功能,当你按下一个键,通过串口发送一个键码。但是,在这种情况下,onKey的回调被激活的速度快于数据可以写入串行端口的速度,因此我需要使用一个drain函数,它发送所有数据并在完成后回调 在尝试发送下一个键代码之前,如何等待执行drainSerialPort回调?我认为有更好的方法来构造这三个函数 onKey(function(key) { writeSerial(key, function() { drainSerialPort(function() { //

我有一个功能,当你按下一个键,通过串口发送一个键码。但是,在这种情况下,
onKey
的回调被激活的速度快于数据可以写入串行端口的速度,因此我需要使用一个drain函数,它发送所有数据并在完成后回调

在尝试发送下一个键代码之前,如何等待执行
drainSerialPort
回调?我认为有更好的方法来构造这三个函数

onKey(function(key) {
  writeSerial(key, function() {
    drainSerialPort(function() {
      // Wait for this callback to be called to continue
    });
  });
});

根据您的要求,最好的选择是异步。 首先执行函数onKey,完成后执行函数writeSerial

        var onKey = function (key) {
        };
async.eachSeries(onKey, writeSerial, function (err) {
    if (err) {
        res.json({status: 0, msg: "OOPS! How is this possible?"});
    }
    drainSerialPort(function () {
        // Wait for this callback to be called to continue
    });
    res.json("Series Processing Done");
})
var writeSerial = function (key) {
};