我正在使用NodeJS / Express。

在我的app.js中,我有一个异步检索的变量,我想在多个文件之间共享:

const myDriver;
somePromise.then((driver) => myDriver = driver);


somePromise创建一个硒驱动程序实例。

我的目标是:在诺言解决后,在我的Express项目中的多个文件之间共享myDriver的值,而无需多次执行诺言(因此它不会创建多个Selenium实例)。我只有在应用启动时才需要这样做。

我找不到与module.exports正确的用法,因为它是异步的。

任何想法?

最佳答案

这样的事情应该可以解决问题。基本上将实例保存在某个地方,以便您可以在后续调用中重用它。

let myDriver;

async function getDriver() {
  if (!myDriver) {
    myDriver = await somePromise();
  }

  return myDriver;
}

module.exports = getDriver;



用法

const driver = await getDriver();


由于正在等待,因此您需要对函数使用异步。

关于node.js - Node.js-共享在多个文件之间异步创建的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60341149/

10-10 00:09