如何正确访问另一个.js文件中askingInputs返回对象的file属性值
解决方案
inquirer.prompt() 方法返回的是 Promise 实例,你之前采用同步方式直接读取返回值的属性,自然会得到 undefined 或者不存在的报错。
正确调用方式
方案1:async/await 写法(推荐)
// 你的业务执行文件,比如 index.js const { askingInputs } = require('./inputs.js'); // 路径匹配你本地的实际路径即可 async function run() { // 等待用户输入完成后拿到结果对象 const inputRes = await askingInputs(); // 直接读取file属性 const fileValue = inputRes.file; console.log('获取到的file属性值:', fileValue); // 后续业务逻辑都写在这个异步函数内即可 } run();
方案2:Promise.then 写法
const { askingInputs } = require('./inputs.js'); askingInputs() .then(inputRes => { const fileValue = inputRes.file; console.log('获取到的file属性值:', fileValue); // 后续业务逻辑写在then回调内 }) .catch(err => { console.error('输入流程出错:', err); });
错误写法示例(避免使用)
不要尝试在异步逻辑外直接读取返回值:
// 错误写法 const inputRes = askingInputs(); console.log(inputRes.file); // inputRes是Promise实例,不存在file属性,会报错或返回undefined
额外提示
你贴出的 files.js 和 inputs.js 代码完全一致,如果没有特殊用途可以删除冗余文件,避免调用时引错文件。
内容的提问来源于stack exchange,提问作者Ernesto Diaz
相关产品推荐
相关产品推荐

