Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中导入语法之前运行多个代码?_Javascript_Node.js_Ecmascript 6_Import_Module - Fatal编程技术网

如何在Javascript中导入语法之前运行多个代码?

如何在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

我想在执行导入语法中的代码之前运行几个代码

范例

文件-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中,行不必等待行结束。解决此问题的一种方法是将文件-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的问题。这与异步操作无关。这是关于导入如何工作的,即使对于完全同步的代码也是如此。