我在游戏机中构建了一个游戏,我使用了一个名为“prompts”的NPM包,它会询问游戏用户,“你想运行哪个操作系统?””并返回为JSON。例如,如果您选择“OS 1”,它将返回{启动:“StartOS1”}。我想做的基本上是有一个这样的if语句:
if(Bootup == "StartOS1") {
// The code to run another JS file here.
}
但我不知道该写什么。
我尝试过使用一个名为shelljs的NPM包来实现这一点,它在shell中执行一些东西:
const shell = require('shelljs')
if(Bootup == "StartOS1") {
shell.exec('node OS1.js')
}
这样做的结果是使我的shell永远停留在一个空白行上,我不得不重新启动它。这是一个我正在尝试做的事情的例子。
1条答案
按热度按时间8oomwypt1#
shell.exec('node OS1.js')
是一个同步函数,它会阻塞你的程序。例如,如果你的js文件正在等待一个事件,它可能会无限期地阻止你的函数。尝试child_process
的exec()
方法。这应有助于:还有其他几个方法可以使用,但这个方法将js文件作为字符串读取,然后通过另一个同步
eval
函数执行。不过,我听说在安全方面这不是最好的做法。