Emacs lisp 命令调用node hello.js
:
(call-process "node" nil t nil "hello.js")
的两种变体hello.js
:
hello_1.js
:console.log('Hello world!');
输出:
Hello world! 0
hello_2.js
:console.log('Hello world!'); process.exit(5);
输出(日志语句没有输出!):
5
process.exit(5)
导致输出被抑制的原因是什么?
笔记:
我在 MARVIN 上的 2013-03-17 的 GNU Emacs 24.3.1 (i386-mingw-nt5.1.2600) 中遇到了这个问题,结合Node.js v0.10.18在 Windows XP/SP3/32上运行。
我尝试EShell执行节点命令行:没有输出
process.exit()
调用低电平process.reallyExit()
,导致问题:没有输出process.reallyExit()
在 C++ 中实现:void Exit(const FunctionCallbackInfo<Value>& args) { HandleScope scope(node_isolate); exit(args[0]->IntegerValue()); }
[...]
NODE_SET_METHOD(process, "reallyExit", Exit);