强制保持Node.js进程运行的最佳方法是什么,即保持其事件循环不运行,从而阻止进程终止?我能想出的最佳解决方案是:
const SOME_HUGE_INTERVAL = 1 << 30;
setInterval(() => {}, SOME_HUGE_INTERVAL);
Run Code Online (Sandbox Code Playgroud)
如果您将间隔时间保持足够长的话,这将保持间隔运行而不会引起太多干扰.
有没有更好的方法呢?
我有一个Node.js脚本使用Edge.js注册一个回调函数,以便可以从.NET内的DLL内部调用它.此功能将每秒调用1次,发送一个应打印到控制台的简单序列号.
Edge.js部分很好,一切正常.我唯一的问题是我的Node.js进程执行它的脚本,然后它用完了要处理的事件.它的事件循环为空,它只是终止,忽略了它应该继续运行以便能够从DLL接收回调的事实.
我的Node.js脚本:
var
edge = require('edge');
var foo = edge.func({
assemblyFile: 'cs.dll',
typeName: 'cs.MyClass',
methodName: 'Foo'
});
// The callback function that will be called from C# code:
function callback(sequence) {
console.info('Sequence:', sequence);
}
// Register for a callback:
foo({ callback: callback }, true);
// My hack to keep the process alive:
setInterval(function() {}, 60000);
Run Code Online (Sandbox Code Playgroud)
我的C#代码(DLL):
public class MyClass
{
Func<object, …
Run Code Online (Sandbox Code Playgroud)