Как видно из названия, я получаю сообщение об ошибке при попытке создать обработчик события для spawn.stdin.on Uncaught TypeError: spn.stdout.on is not a function
. Я использую contextBridge, как показано ниже, и всякий раз, когда я создаю новый объект spawn, он выполняется, но он выдает ошибку при создании обработчиков событий.
preload. js
const {contextBridge, remote} = require('electron');
const spawn = require('child_process').spawn;
contextBridge.exposeInMainWorld(
'api', {
spawn: (cmd, args) => {
return spawn(cmd, args);
}
}
);
И функция, которая выдает ошибку.
let spn = undefined;
let running = false;
let finishQueueItem = false;
function startQueue() {
// if the queue is already running, then return
if (running) return;
if (!$q.length > 0) {
let x = addToQueue(getConfig());
if (!x) return;
}
running = true;
let $i = $q.pop();
let cmd = $p.DAINPath + "\\DAINAPP.exe";
let args = parseConfig($i);
spn = api.spawn(cmd, args);
spn.stdout.on("data", (data) => {
console.log(data.toString());
});
spn.stderr.on("data", (data) => {
console.error(data.toString());
});
spn.on("exit", (code) => {
console.log("Child process exited with code " + code.toString());
spn = undefined;
running = false;
});
}