首页 > 解决方案 > 如何使用顶级 await 方法处理 const 值的动态导入

问题描述

我正在尝试使用基于环境的 const 文件导入,使用动态导入。当我在顶层使用 await 方法导出 const 值时,我收到错误,因为“不能在异步方法之外使用关键字 await”。我在这里做错了什么吗?

export const urls = await import(`./environments/${environment}`)

在此处输入图像描述

标签: javascriptreactjsecmascript-6

解决方案


对于尚不支持顶级 await 的平台,您需要将导入和代码包装到异步函数中:

async function main() {
  const urls = await import(`./environments/${environment}`)
  // do work
}
main()

您还可以做的是导出承诺:

let promise;
let result = {};
async function main() {
  promise = import(`./environments/${environment}`);
  result.urls = await promise;
}
main()
export { ready, result }

所以消费模块也可以等待值,或者检查值是否准备好


推荐阅读