从 prompt.get 返回
Returning from prompt.get
我目前正在使用 Node 中的提示包在命令行上获取用户输入,但是,我想 return 来自 prompt.get 的变量 - 我将如何存储 return variable/where 我可以从那里访问它吗?我对 Node 比较陌生。
const prompt = require('prompt');
prompt.start();
prompt.get(['num'], function (err: any, result: any) {
if (err) { return Error(err); }
if(result.num > 0) {
return "Positive";
}
else {
return "Negative";
}
});
干杯!
您可以在回调外部初始化变量,然后在回调内部设置变量:
let value;
prompt.get(['num'], function (err: any, result: any) {
if (err) { return Error(err); }
value = result > 0 ? "Positive" : "Negative";
});
但问题是在完成之前该值将为空,因此如果您尝试在之后立即调用它,它将为空。
let value;
prompt.get(['num'], function (err: any, result: any) {
if (err) { return Error(err); }
value = result > 0 ? "Positive" : "Negative";
});
console.log(value); // => undefined
虽然该包也支持承诺,因此您可以只使用 await
,如 shown on their readme:
(async () => {
const { num } = await prompt.get(['num']);
})();
您应该注意到匿名自执行异步函数,那是因为 await 仅在异步函数内部工作(技术上在节点 v15 之后和使用模块时不需要)。
我目前正在使用 Node 中的提示包在命令行上获取用户输入,但是,我想 return 来自 prompt.get 的变量 - 我将如何存储 return variable/where 我可以从那里访问它吗?我对 Node 比较陌生。
const prompt = require('prompt');
prompt.start();
prompt.get(['num'], function (err: any, result: any) {
if (err) { return Error(err); }
if(result.num > 0) {
return "Positive";
}
else {
return "Negative";
}
});
干杯!
您可以在回调外部初始化变量,然后在回调内部设置变量:
let value;
prompt.get(['num'], function (err: any, result: any) {
if (err) { return Error(err); }
value = result > 0 ? "Positive" : "Negative";
});
但问题是在完成之前该值将为空,因此如果您尝试在之后立即调用它,它将为空。
let value;
prompt.get(['num'], function (err: any, result: any) {
if (err) { return Error(err); }
value = result > 0 ? "Positive" : "Negative";
});
console.log(value); // => undefined
虽然该包也支持承诺,因此您可以只使用 await
,如 shown on their readme:
(async () => {
const { num } = await prompt.get(['num']);
})();
您应该注意到匿名自执行异步函数,那是因为 await 仅在异步函数内部工作(技术上在节点 v15 之后和使用模块时不需要)。