我怎样才能做顶级等待

Har*_*rma 7 javascript reactjs next.js

我正在尝试构建一个反应应用程序并想要调用这样的函数:

if (typeof window !== 'undefined') { var token = (await getItem('secure_token')); }
if (typeof window !== 'undefined') { var user_id = (await getItem('user_id')); }
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

Module parse failed: The top-level-await experiment is not enabled (set experiments.topLevelAwait: true to enabled it)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点。因为如果没有等待,我得到的 [object Promise]并不是实际值。

下面是完整的代码:

if (typeof window !== 'undefined') { var token = (await getItem('secure_token')); }
if (typeof window !== 'undefined') { var user_id = (await getItem('user_id')); }
Run Code Online (Sandbox Code Playgroud)

Tus*_*ahi 1

您可以执行此操作来导出依赖于 Promise 的函数:

let getTokens = async () => {
var token = null;
var user_id = null;
if (typeof window !== 'undefined') { token  = (await getItem('secure_token')); }
if (typeof window !== 'undefined') { user_id = (await getItem('user_id')); }

return {token, user_id };
}


export const API_ROUTE = getTokens().then((data)=> { return axios.create({
    baseURL: API_URL,
    withCredentials: true,
    crossdomain: true,
    headers: {
        "Key": data.token,
        "Id": data.user_id
    } 
}); });

Run Code Online (Sandbox Code Playgroud)

您可以使用此承诺来访问模块中的 axios 实例。