Javascript Async module.exports在Node.js中导出依赖项
我在Node.js中有两个相互依赖的测试文件。第一个测试运行一些异步工作,最后导出一个具有第二个测试所需UUID的对象 test_1.js test_2.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
模块.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中,使用参数调用函数并获得承诺。您不需要返回承诺,只需导出异步函数并等待它