javascript - 如何延迟函数调用,直到它的回调在其他地方完成
问题描述
我正在使用child_process
将命令写入控制台,然后订阅'data'
事件以从中获取输出。问题是有时输出会相互合并。
let command = spawn('vlc', { shell: true });
writeCommand(cmd, callback) {
process.stdin.write(`${cmd}\n`);
this.isBusy = true;
this.process.stdout.on('data', (d) => {
callback(d);
});
}
函数writeCommand
在多个地方使用,我怎样才能延迟它的执行,直到上一个命令的输出完成?
我的输出可能看起来像(status
例如命令):
(音量:230)(状态停止)>
解决方案
您可以使用排队机制在第一个命令完成后执行下一个命令。你也可以使用像https://www.npmjs.com/package/p-limit这样的库来为你做这件事。
推荐阅读
- c# - Unity 投影仪着色器更改主颜色
- python - scikit-learn 逻辑回归预测与自我实现不同
- python - 为什么这个 Python 语法错误不是错误?
- r - 如何避免气泡图中的气泡重叠?
- python - 写入 csv 时从数据框中删除双引号
- c# - Remove bad VBA code from Visio file after it is selected but before it is opened
- java - 对话框内的白底白字
- python-2.7 - 令人尴尬的简单问题:尝试调用 okcmd 包时不断收到 Invalid syntax 错误
- python-3.x - 按需运行 Flask 以可视化计算数据
- javascript - XMLHttpRequest 响应不希望的响应