Common lisp uiop:启动程序和节点

Common lisp uiop:启动程序和节点,common-lisp,Common Lisp,我正在尝试启动node,编写JS并读回答案。为什么下面的代码不工作,但挂起在读取行echo“console.log(1+1)”|节点工作正常 (defvar node-process (uiop:launch-program '("/usr/local/bin/node") :input :stream :output :stre

我正在尝试启动node,编写JS并读回答案。为什么下面的代码不工作,但挂起在读取行<代码>echo“console.log(1+1)”|节点工作正常

(defvar node-process (uiop:launch-program '("/usr/local/bin/node")
                                          :input :stream
                                          :output :stream
                                          :error-output :stream))

(defvar node-stream (make-two-way-stream (uiop:process-info-output node-process)
                                         (uiop:process-info-input node-process)))

(write-line "console.log(1+1)" node-stream)
(force-output node-stream)
(format t "~s~%" (read-line node-stream))

在非交互模式下,
节点
似乎仅在读取
EOF
后才会发出输出,因此您需要在读取前关闭输入流

(关闭(双向流输入流节点流))
强制输出之后和
读取行之前