我正在尝试使用 Node v14.8 中添加的新顶级 await。请参阅此处和此处了解更多信息。我没有在这里找到有关使用此新功能的问题的问题,但我希望这不是重复的。最接近的是@DanStarns 对这个问题的回答,但我也尝试过他的解决方案(他的回答是在 14.8 版本之前)。
我正在将我的 Axios 实例从我的控制器中提取到一个独立的服务中。在该服务文件中,我尝试实例化然后导出使用 Spotify API 中存储的授权标头创建的 Axios 实例。由于然后将其导入我的控制器(传递到构造函数然后导出new SpotifyApiController(SpotifyApiService))并且导入是同步的,因此我尝试使用新的顶级 await 功能在启动/导入时完全实例化它,但收到以下错误:
[nodemon] starting `babel-node bin/www.js --harmony-top-level-await --experimental-repl-await`
E:\projects\harmonic-mixing-companion\server\services\SpotifyApiService.mjs:117
var SpotifyApiService = await createApiService();
^^^^^
SyntaxError: await is only valid in async function
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Module._compile (E:\projects\harmonic-mixing-companion\server\node_modules\pirates\lib\index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Object.newLoader [as .mjs] (E:\projects\harmonic-mixing-companion\server\node_modules\pirates\lib\index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at …Run Code Online (Sandbox Code Playgroud)