【发布时间】:2019-12-04 21:58:35
【问题描述】:
我有一个 index.js,它从 json 文件中获取数据。
我将此函数导出到我的 App.js,我想在其中将此数据存储在另一个对象中。
配置/index.js:
let config = (async () => {
let data;
if (process.env.NODE_ENV !== 'development') {
if (
typeof window !== 'undefined' &&
(window.location.hostname.match('localhost') || window.location.hostname.match('127.0.0.1'))
) {
data = require('./config.client.local.json');
} else {
data = require('./config.client.ip.json');
}
} else {
data = fetch(process.env.PUBLIC_URL + "/config.client.json")
.then(async res => await res.json());
}
return Object.assign({}, await data);
})();
export default config;
App.js
import OIDC from 'oidc-client';
import config from './configurations';
window["UserManager"] = new OIDC.UserManager(config.oidc);
我不知道如何在不使用 async/await 的情况下获取数据
有人有想法吗?
【问题讨论】:
-
.then(res => res.json());don't mix async/await with Promises,这是多余和混乱的。 -
另外,你的配置是一个承诺,即使你使用
async/await,所以你要么使用config.then(realConfigData => /* */)要么使用await config。 -
@EmileBergeron,有没有办法让我可以在不使用 fetch 的情况下获取这个文件(文件在 src 之外)?
-
根据您的项目配置,您有可能只需
import jsonConfig from '../config.client.json';并在构建时解析一次。
标签: javascript reactjs async-await fetch openid-connect