簡體   English   中英

Node.js中的異步module.exports依賴項

[英]Async module.exports dependency in Node.js

我在Node.js中有兩個相互依賴的測試文件。 第一個測試運行一些異步工作,最后輸出帶有第二個測試所需的UUID的對象。

test_1.js

'use strict';

# simulate some async work
setTimeout(() => {
    module.exports = {
        id: '83b50527-73a9-4926-8247-e37547f3da6d'
    };
}, 2000);

test_2.js

'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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM