2
是否有可能创建一个不会阻止node.js退出的“弱回调”(类似于“弱引用”)?我希望能够为长时间运行的异步任务定义一个“可选处理程序”,如果node.js进程仍在运行,但它不会阻止事件队列被“空”本身。我没有一个真实世界的用例,我只是想知道node.js是否支持它(它可能需要本地扩展)。Node.js创建不会阻止进程退出的“弱回调”
这是一个非常简单的程序,调用/bin/sh -c "sleep 9 ; ls"
并等待它完成。 node.js进程基本上闲置9秒,直到子进程结束。
var child_process = require("child_process");
child_process.exec("sleep 9 ; ls", function (err, stdout, stderr) {
console.log(stdout);
});
console.log("end");
我希望能够写这样的事情,在这里我使用setTimeout
所以程序是保证活着的至少三秒钟来创建一个非弱回调。 (注:child_process.exec
确实有超时选项,但必须提前进行设置,而这种方法允许在事后被改变的最后期限)
var child_process = require("child_process");
child_process.exec_weakly("sleep 9 ; ls", function (err, stdout, stderr) {
console.log(stdout);
});
setTimeout(function() {}, 3000); // prevent exit for at least three seconds
console.log("end");