Javascript NodeJS:有没有一种方法可以保存承诺返回的值,并从另一个文件访问这个变量

Javascript NodeJS:有没有一种方法可以保存承诺返回的值,并从另一个文件访问这个变量,javascript,asynchronous,promise,Javascript,Asynchronous,Promise,我有一个异步函数(promise),它读取一个xml文件并给出一个键和值的映射(如果promise得到了解决)。我在整个项目中都需要这张地图。因此,我只想读取这个xml文件一次,可能是在项目开始时,并将映射保存在变量中。我想在我的项目的不同文件中使用这个变量。有什么方法可以实现这一点吗?您可以在文件中定义函数以期望参数,使用Promise.all()加载文件,将函数引用从请求的文件传递到。然后()在内。然后()链接到Promise.all() 其中loadFiles1.js包含一个函数loadF

我有一个异步函数(promise),它读取一个xml文件并给出一个键和值的映射(如果promise得到了解决)。我在整个项目中都需要这张地图。因此,我只想读取这个xml文件一次,可能是在项目开始时,并将映射保存在变量中。我想在我的项目的不同文件中使用这个变量。有什么方法可以实现这一点吗?

您可以在文件中定义函数以期望参数,使用
Promise.all()
加载文件,将函数引用从请求的文件传递到
。然后()
内。然后()
链接到
Promise.all()

其中
loadFiles1.js
包含一个函数
loadFile

function loadFile(data) {
  console.log(data);
}

plnkr

你说的“不同的文件”是什么意思?就像,我想使用这个变量,不是在同一个js文件中,而是在不同的js文件中。你在履行
承诺后加载文件吗?是的,文件在完成promiseJust后加载,并在您想要的任何地方访问它。这听起来像是模块加载器的实现,而不是OP要求的xml缓存。@Bergi“这听起来像是模块加载器的实现,而不是OP要求的xml缓存。”怎么回事
promise
返回OP查询的关于在整个代码中访问的XML-加载“并且我想在我的项目的不同文件中使用变量”后@Bergi不太熟悉用于描述代码的术语。答案中的代码应该执行OP中描述的两部分需求。我相信这个解决方案是反向的。OP可能已经有了一个加载项目各种文件的系统。此外,它不能很好地与单个依赖项进行扩展-只有当所有文件仅依赖于单个
promise
@Bergi时,您的代码才能工作。不,解决方案不是反向的。也许您正在反向阅读需求。问题的全部前提是OP需要定义一个引用XML的变量。首先需要XML,然后OP才能加载其他文件。或者,在实现获取XML的
承诺之前,这些文件不会执行任何操作。是的,所有其他文件都依赖于引用要首先定义的XML的变量“我在整个项目中都需要此映射。因此我只想读取此XML文件一次,可能是在项目开始时,并将映射保存在变量中。”
function loadFile(data) {
  console.log(data);
}