Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 Async module.exports在Node.js中导出依赖项_Javascript_Node.js_Require - Fatal编程技术网

Javascript Async module.exports在Node.js中导出依赖项

Javascript Async module.exports在Node.js中导出依赖项,javascript,node.js,require,Javascript,Node.js,Require,我在Node.js中有两个相互依赖的测试文件。第一个测试运行一些异步工作,最后导出一个具有第二个测试所需UUID的对象 test_1.js test_2.js 问题是因为模块.exports在第一个测试中被称为async,在测试二控制台中。log(testOne)只是一个空对象 如何让test_2.js等待test_1.js完成导出?承诺救援是一种时尚 测试_1.js module.exports = new Promise(resolve => { setTimeout(() =&g

我在Node.js中有两个相互依赖的测试文件。第一个测试运行一些异步工作,最后导出一个具有第二个测试所需UUID的对象

test_1.js test_2.js 问题是因为
模块.exports
在第一个测试中被称为async,在测试二
控制台中。log(testOne)
只是一个空对象


如何让
test_2.js
等待
test_1.js
完成导出?

承诺救援是一种时尚

测试_1.js

module.exports = new Promise(resolve => {
  setTimeout(() => resolve({
    id: '83b50527-73a9-4926-8247-e37547f3da6d'
  }), 2000);
});
const testOne = require('./test_1.js');
testOne.then(uuid => console.log(uuid.id));
测试_2.js

module.exports = new Promise(resolve => {
  setTimeout(() => resolve({
    id: '83b50527-73a9-4926-8247-e37547f3da6d'
  }), 2000);
});
const testOne = require('./test_1.js');
testOne.then(uuid => console.log(uuid.id));

请仔细记住,每次导入test_1.js时都会返回相同的promise实例。这会影响promise实例的使用方式。

因此,即使我注释掉了
testOne。然后,
setTimeout
仍然会触发。这没有任何意义。我怎样才能传递参数呢?我不会在不使用模块的情况下导入模块。我怎样传递参数呢?比如说延迟时间?他从test1导出一个hugher order函数,该函数返回承诺。在test2中,使用参数调用函数并获得承诺。您不需要返回承诺,只需导出异步函数并等待它