繁体   English   中英

如何在导出变量之前等待 promise?

[英]How to wait for promise before exporting a variable?

如何仅在 promise 完成后导出值? 假设我在secrets.js文件中有这样的内容:

var secretsData;

(async function () {
  secretsData = await getSecret(); // makes some async API call to AWS Secrets Manager
})();

module.exports = secretsData;

如何在导出secretsData之前等待 promise 完成?

我想避免将异步处理引入到导入secrets.js文件的代码的所有其他区域(这可能会冒泡到它们的父函数等等)。 在我看来,如果我可以在假设它已经被填充的情况下导入和使用这些秘密,那么处理起来会简单得多:

var secretsData = require("../secrets");
... do something with secretsData.url ...
... do something with secretsData.db.password ...

感觉这是一个简单的问题,但我似乎找不到任何解决方案。 我读过的大多数文章似乎只是建议唯一的解决方案是让所有依赖于秘密的东西也变得异步,但是对于如此简单的事情来说,这感觉就像一个如此复杂的解决方案(尤其是当有很多地方取决于秘密)。

实现依赖于要完成的 promise 的秘密(或某种形式的配置)的最简单/惯用/最干净的方法是什么?

尝试

module.exports = await secretsData;

您可以参考这里了解更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM