在vuejs应用程序中,我试图从ajax调用的数据初始化一个对象:
let settings = {}
api.readConfig().then((config) => {
settings = {
userStore: new Oidc.WebStorageStateStore(),
authority: config.data.urls.auth,
client_id: config.data.clientid,
redirect_uri: `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}${process.env.ROUTER_BASE}static/callback.html`,
response_type: 'id_token token',
post_logout_redirect_uri: config.data.urls.auth,
}
})
const authMgr = new Oidc.UserManager(settings)
export default authMgr
通过调用返回导出对象,使所有设置为null。
如何在导出const之前等待通话?
答案 0 :(得分:3)
你不能阻止export
,但你能做的就是这样,就是叫promise
链。在这里,您可以将解决承诺的责任转移到callee
模块。
export default api.readConfig().then((config) => {
return {
userStore: new Oidc.WebStorageStateStore(),
authority: config.data.urls.auth,
client_id: config.data.clientid,
redirect_uri: `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}${process.env.ROUTER_BASE}static/callback.html`,
response_type: 'id_token token',
post_logout_redirect_uri: config.data.urls.auth,
}
}).then((settings) => {
return new Oidc.UserManager(settings);
})
然后在callee
模块上,您可以执行以下操作。
var config = require('./config');
config().then((userManager) => {
...
})