Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式关闭Vorpal实例_Javascript_Node.js_Vorpal.js_Inquirer_Vorpal - Fatal编程技术网

Javascript 以编程方式关闭Vorpal实例

Javascript 以编程方式关闭Vorpal实例,javascript,node.js,vorpal.js,inquirer,vorpal,Javascript,Node.js,Vorpal.js,Inquirer,Vorpal,这与node.js的vorpal CLI有关,如下所示: const vorpal = require('vorpal')(); 用户可以使用Ctrl-C关闭vorpal,但如何以编程方式关闭vorpal 例如,如果打开了vorpal终端会话,但25秒后没有收到进一步的stdin,则我希望以编程方式关闭vorpal,我的代码如下所示: vorpal .delimiter(shortCWD + chalk.magenta(' / suman>')) .show(); co

这与node.js的vorpal CLI有关,如下所示:

const vorpal = require('vorpal')();
用户可以使用Ctrl-C关闭vorpal,但如何以编程方式关闭vorpal

例如,如果打开了vorpal终端会话,但25秒后没有收到进一步的stdin,则我希望以编程方式关闭vorpal,我的代码如下所示:

  vorpal
  .delimiter(shortCWD + chalk.magenta(' / suman>'))
  .show();

  const to = setTimeout(function () {
    vorpal.close();  // >>>  I want to programmatically close vorpal...but vorpal.close() is not a function
    process.stdin.end();
    log.error('No stdin was received after 25 seconds..closing...');
    p.killAllImmediately();
    process.exit(0);
  }, 25000);   // if no stdin has been received after 25 seconds

  process.stdin
  .setEncoding('utf8')
  .resume()
  .on('data', function customOnData(data: string) {
    clearTimeout(to);
    if (String(data) === 'q') {
      log.warning('killing all active workers.');
      p.killAllActiveWorkers();
    }
  });

虽然Vorpal没有关闭函数,但可以使用或以编程方式运行本机
exit
命令。您可能还对隐藏Vorpal感兴趣

代码:

vorpal.exec("exit");

虽然Vorpal没有关闭函数,但可以使用或以编程方式运行本机
exit
命令。您可能还对隐藏Vorpal感兴趣

代码:

vorpal.exec("exit");

这个怎么了

const Vantage = require('vantage')

const v = Vantage()
    .delimiter('$test')
    .listen(9000)
    .show()

const close = () => {
    v.exec('exit', () => {
        console.log('DONE')
    })
}  
setTimeout(close, 1000)
错误:已在提示中间时调用UI提示。
在Object.prompt(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/vorpal/lib/ui.js:131:13)
在Vorpal.Vorpal.prompt(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:450:8)
在Vorpal.Vorpal.exit(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:1160:12)
在会议上。(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/vorpal/lib/vorpal-commons.js:49:19)
在Vorpal.Vorpal._exec(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_modules/Vorpal/lib/Vorpal.js:846:18)
在Vorpal.Vorpal._execQueueItem(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:594:10)
在Vorpal.Vorpal._queueHandler(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_modules/Vorpal/lib/Vorpal.js:579:10)
在Vorpal.Vorpal.exec(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:554:24)
在Timeout.close[as_onTimeout](/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/xxx.js:9:7)
在ontimeout(timers.js:380:14)

这有什么问题

const Vantage = require('vantage')

const v = Vantage()
    .delimiter('$test')
    .listen(9000)
    .show()

const close = () => {
    v.exec('exit', () => {
        console.log('DONE')
    })
}  
setTimeout(close, 1000)
错误:已在提示中间时调用UI提示。
在Object.prompt(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/vorpal/lib/ui.js:131:13)
在Vorpal.Vorpal.prompt(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:450:8)
在Vorpal.Vorpal.exit(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:1160:12)
在会议上。(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/vorpal/lib/vorpal-commons.js:49:19)
在Vorpal.Vorpal._exec(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_modules/Vorpal/lib/Vorpal.js:846:18)
在Vorpal.Vorpal._execQueueItem(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:594:10)
在Vorpal.Vorpal._queueHandler(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_modules/Vorpal/lib/Vorpal.js:579:10)
在Vorpal.Vorpal.exec(/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/node_-modules/Vorpal/lib/Vorpal.js:554:24)
在Timeout.close[as_onTimeout](/Users/giggioz/Spaghetti/keeper/keeper-giochipiu-delegates/xxx.js:9:7)
在ontimeout(timers.js:380:14)

看起来像是在
进程上。退出()
,vorpal会自己清理,但不完全确定看起来像是在
进程上。退出()
,vorpal会自己清理,但不完全确定谢谢,这比只运行
进程。退出()
好吗?只是想确保东西被正确清理干净。@AlexanderMills我想是的,但如果您只使用Vorpal和这个超时函数,可能只会稍微清理一下。使用Vorpal命令看起来也更干净。谢谢,这比只运行
进程.exit()
好吗?只是想确保东西被正确清理干净。@AlexanderMills我想是的,但如果您只使用Vorpal和这个超时函数,可能只会稍微清理一下。使用Vorpal命令似乎也更简洁。