【发布时间】:2022-09-23 23:29:31
【问题描述】:
我有两个名为 test.js 和 test2.js 的文件,我在 test1.js 中编写了一个函数,该函数将一个值存储在函数调用的变量中,但我无法访问 test2.js 文件中变量中的值。每当我尝试这样做时,它都会显示未定义。
有人可以指导我完成同样的事情吗
这是我的 2 个文件的样子
let det=\'\';
let fine=\'\';
async function init(key)
{
try{
det=pkey;
console.log(pkey);
fine = uuidv4();
console.log(fine);
}
catch(error){
console.error(error);
}
}
现在我想在另一个名为 test2.js 的文件中访问 det 和 fine ,我在其中使用 axios
async function getAll(){
try{
const response=await axiosClient.get(\'/shoes\',{ headers: {\"key\" : `${det}`,\"sess\":`${fine}`}});
console.log(response.data);
}
catch(error){
console.error(error);
}
}
module.exports.getAll=getAll;
-
请出示您的代码。在不知道你到底在做什么的情况下,我们不知道你做错了什么(或者你想要的是否可能)。但是,这对我来说听起来像是一个时间问题。如何确保只访问
test2.js中的变量后来自test1.js的函数被调用了吗? -
嘿@FelixKling,我已经添加了示例,如果您需要任何东西,请告诉我
-
如果初始化逻辑确实需要异步,让第一个文件导出一个带有结果的 Promise(或导出一个返回该 Promise 的函数)并在第二个文件中使用 Promise 的值。您没有显示
init与getAll的关系,但现在的问题是您无法知道det和fine的值何时可用。 -
@FelixKling,如果 init 方法不需要是 async ,我需要如何处理?
-
基本相同,只是您导出的函数可以直接返回值。这基本上就是这个答案所显示的:stackoverflow.com/a/73829768/218196。仍然会有问题需要确保
init在getAll之前被调用。
标签: javascript node.js npm