[英]Async module.exports dependency in Node.js
我在Node.js中有兩個相互依賴的測試文件。 第一個測試運行一些異步工作,最后輸出帶有第二個測試所需的UUID的對象。
'use strict';
# simulate some async work
setTimeout(() => {
module.exports = {
id: '83b50527-73a9-4926-8247-e37547f3da6d'
};
}, 2000);
'use strict';
const testOne = require('./test_1.js');
console.log(testOne);
問題在於,在第一個測試中, module.exports
被稱為異步,在第二個測試中, console.log(testOne)
只是一個空對象。
如何讓test_2.js
等到test_1.js
完成導出?
對救援的承諾是它的一種方式。
test_1.js
module.exports = new Promise(resolve => {
setTimeout(() => resolve({
id: '83b50527-73a9-4926-8247-e37547f3da6d'
}), 2000);
});
test_2.js
const testOne = require('./test_1.js');
testOne.then(uuid => console.log(uuid.id));
請注意,每次導入test_1.js時, 都會返回相同的promise實例。 這影響了如何使用promise實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.