Javascript 以编程方式关闭Vorpal实例
这与node.js的vorpal CLI有关,如下所示: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
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命令似乎也更简洁。