【问题标题】:Callbacks and Serial Port Draining in Node.jsNode.js 中的回调和串行端口耗尽
【发布时间】:2017-01-31 13:46:49
【问题描述】:
我有一个功能,当您按下一个键时,它会通过串行端口发送一个键码。但是,在这种情况下,onKey 的回调被激活的速度比数据写入串口的速度要快,所以我需要使用一个漏函数来发送所有数据并在完成后回调。
在尝试发送下一个关键代码之前,如何等待 drainSerialPort 回调执行?我认为有更好的方法来构建这三个函数。
onKey(function(key) {
writeSerial(key, function() {
drainSerialPort(function() {
// Wait for this callback to be called to continue
});
});
});
【问题讨论】:
标签:
node.js
asynchronous
callback
serial-port
【解决方案1】:
根据您的要求,最适合您的选择是异步。
首先你的函数 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) {
};