【发布时间】:2021-04-24 02:35:49
【问题描述】:
所以我有一些东西可以创建一个包含 setTimeout 的子进程。我为 setTimeout 传递了一个数字,但问题是当父母退出时,孩子死了。我需要孩子活着,即使父母死了。我该怎么做?
父文件(mute.js)
const muteTiming = fork("timeHandler/timeMute.js");
...
muteTiming.send(mutedTime)
muteTiming.on("message", (msg) => {
if (msg === "All done!"){
member.roles.remove(mutedRole);
}
});
子进程(timeMute.js)
process.on("message", (msg) => {
let mutedTime = msg;
try {
console.log("Started mute on child!");
let checkDone = false;
setTimeout(() => {
process.send("All done!");
checkDone = true;
console.log("Done!");
}, mutedTime);
while (checkDone === false) {
setTimeout(() => {
console.log("Not done yet...");
}, 5000);
}
} catch (error) {
console.log(`Uh Oh! The child spit out an error. Here it is! ${error}`);
}
});
我试过了
while (checkDone === false) {
setTimeout(() => {
console.log("Not done yet...");
}, 5000);
}
但这并不能让它保持活力。有什么我应该做的吗?
另外,我尝试过 spawn。它不适用于我需要做的事情。至少据我所知。我需要传递一些东西给它。
【问题讨论】:
标签: javascript node.js