我需要在调用api之前设置env vars,但是我需要设置它们的数据来自异步函数

process.env.ENVVAR1 = await someFunc('sdkflskdf');
process.env.ENVVAR2 = await someFunc('sdfsdsd');

const someapi = require('someapi');
someapi.init({ paramOne: 'val1', paramTwo: 'val2' });
someapi.method('zzzz', 'xxxx', 'yyyy');


如何确保在调用someapi之前设置了这些环境变量?

最佳答案

如果所有内容都在同一个async块内,则应该没有问题,因为所有内容将按照定义的顺序执行:

(async() => {
    process.env.ENVVAR1 = await someFunc('sdkflskdf');
    process.env.ENVVAR2 = await someFunc('sdfsdsd');

    const someapi = require('someapi');
    someapi.init({ paramOne: 'val1', paramTwo: 'val2' });
    someapi.method('zzzz', 'xxxx', 'yyyy');
})();


如果不起作用,则在设置环境之前,您的API会包含在其他位置,并且您会遇到某种初始化冲突。

关于javascript - 需要在调用api之前从异步函数设置环境变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57651520/

10-10 00:24