如何在Javascript中导入语法之前运行多个代码?
我想在执行导入语法中的代码之前运行几个代码 范例 文件-1.js console.log“在文件1中” 导入“./file-2.js” 文件-2.js console.log“在文件2内部” 输出 内部文件2 内部文件1 我期望的产出 内部文件1 内部文件2 环境 节点JS v12.19.0,带有 真实案例 文件-1.js process.env.SHARED_DATA='Hello world' 导入“./file-2.js” 文件-2.js console.logprocess.env.SHARED_数据 输出 未定义如何在Javascript中导入语法之前运行多个代码?,javascript,node.js,ecmascript-6,import,module,Javascript,Node.js,Ecmascript 6,Import,Module,我想在执行导入语法中的代码之前运行几个代码 范例 文件-1.js console.log“在文件1中” 导入“./file-2.js” 文件-2.js console.log“在文件2内部” 输出 内部文件2 内部文件1 我期望的产出 内部文件1 内部文件2 环境 节点JS v12.19.0,带有 真实案例 文件-1.js process.env.SHARED_DATA='Hello world' 导入“./file-2.js” 文件-2.js console.logprocess.env.SH
在JavaScript中,行不必等待行结束。解决此问题的一种方法是将文件-1.js放入异步函数中:
async function f() {
process.env.SHARED_DATA = "Hello world";
return Promise.resolve(1);
}
f().then(() => {import "./file-2.js"});
通过调用此函数,您可以确保导入等待f函数结束!然后运行arrow函数。如果你想阅读更多关于这个话题的文章,希望这对你有所帮助 在JavaScript中,行不必等待行结束。解决此问题的一种方法是将文件-1.js放入异步函数中:
async function f() {
process.env.SHARED_DATA = "Hello world";
return Promise.resolve(1);
}
f().then(() => {import "./file-2.js"});
通过调用此函数,您可以确保导入等待f函数结束!然后运行arrow函数。如果你想阅读更多关于这个话题的文章,希望这对你有所帮助 您可以在单独的文件中定义环境数据。导入语法将按照与其他导入相对应的顺序运行,如所述 范例 main.js console.log'Inside main.js文件' 导入“./set env.js” 导入“./file.js” set-env.js console.log'Inside set-env.js文件' process.env.SHARED_DATA='Hello world' file.js console.logprocess.env.SHARED_数据 输出 set-env.js文件内部 你好,世界 在main.js文件中
可以在单独的文件中定义环境数据。导入语法将按照与其他导入相对应的顺序运行,如所述 范例 main.js console.log'Inside main.js文件' 导入“./set env.js” 导入“./file.js” set-env.js console.log'Inside set-env.js文件' process.env.SHARED_DATA='Hello world' file.js console.logprocess.env.SHARED_数据 输出 set-env.js文件内部 你好,世界 在main.js文件中
导入的实现方式禁止此类操作。有效地导入发生在其他任何事情发生之前,然后在导入完成后,代码正常执行。如果没有更真实的示例,很难判断,但您可以执行`import log-inside-file1.js;导入文件-2.js;因为导入本身将按顺序运行。但不能是同一个文件中的任何内容。在您的实际示例中,您可以仅从file-2.js导出一个函数。然后,导入该函数,但尚未运行任何代码,然后在设置环境后,调用导入的函数,file-2.js完成自身初始化。或者,在调用函数时直接将相关信息传递给函数,而不是将其设置到环境中。无论哪种情况,file-1.js都会在调用file-2.js初始化函数之前运行代码。这是一种设计模式,通常称为模块构造函数,用于传递初始化参数。导入的实现方式禁止此类操作。有效地导入发生在其他任何事情发生之前,然后在导入完成后,代码正常执行。如果没有更真实的示例,很难判断,但您可以执行`import log-inside-file1.js;导入文件-2.js;因为导入本身将按顺序运行。但不能是同一个文件中的任何内容。在您的实际示例中,您可以仅从file-2.js导出一个函数。然后,导入该函数,但尚未运行任何代码,然后在设置环境后,调用导入的函数,file-2.js完成自身初始化。或者,在调用函数时直接将相关信息传递给函数,而不是将其设置到环境中。无论哪种情况,file-1.js都会在调用file-2.js初始化函数之前运行代码。这是一种设计模式,通常称为模块构造函数,用于传递初始化参数。我认为这不是OP的问题。这与异步操作无关。这是关于导入是如何工作的,即使对于完全同步的代码也是如此。我不认为这是OP的问题。这与异步操作无关。这是关于导入如何工作的,即使对于完全同步的代码也是如此。