Javascript require()何时执行?

Javascript require()何时执行?,javascript,asynchronous,Javascript,Asynchronous,假设我有2个JS文件,并且导出了2个数组。我的目标是以某种方式处理这些数组 在下面,我将使用测试代码来说明结果。不管它是否有效 sender.js let arr1 = ['A', 'B', 'C']; let arr2 = ['D', 'E', 'F']; module.exports.arr1 = arr1; module.exports.arr2 = arr2; const sended = require('./sender.js'); function testfunc(a

假设我有2个JS文件,并且导出了2个数组。我的目标是以某种方式处理这些数组

在下面,我将使用测试代码来说明结果。不管它是否有效


sender.js

let arr1 = ['A', 'B', 'C'];
let arr2 = ['D', 'E', 'F'];

module.exports.arr1  = arr1;
module.exports.arr2  = arr2;
const sended = require('./sender.js');

function testfunc(arr1, arr2){
    // DO STH WITH THAT ARRAYS
};

let test = testfunc(sended.arr1, sended.arr2);

receiver.js

let arr1 = ['A', 'B', 'C'];
let arr2 = ['D', 'E', 'F'];

module.exports.arr1  = arr1;
module.exports.arr2  = arr2;
const sended = require('./sender.js');

function testfunc(arr1, arr2){
    // DO STH WITH THAT ARRAYS
};

let test = testfunc(sended.arr1, sended.arr2);

我的问题

require是否在开始时执行,JS代码的其余部分是否等待变量arr1和arr2加载

如何确保testfunc(send.arr1,send.arr2)在send.arr1和send.arr2未定义的情况下执行,因为函数是在require语句之前调用的


希望我想知道的是清楚的。

node.js(来自)是同步的。您的代码可以正常工作。

没有多大意义。您没有在
require()
之前调用函数,它是文件的第一行。你在一个真实的项目中有实际问题吗?所以你说这部分是同步的?如果我把要求放在测试之后。。。如果您有
testfunc(sended.arr1),我就会遇到上面描述的问题;const sended=无论什么require()
确实会立即返回导出(否则在实践中将完全无用)。这是什么环境?这是CommonJS(node.js)还是ESM环境?我认为这可能会产生影响。Node确实需要同步,但在ESM中,require是动态引入的异步机制。