答案 0 :(得分:1)
您的问题似乎是因为您在await
上使用refreshToken
,但没有返回Promise
。错误消息抱怨createPromise
没有定义,但是我们看不到任何试图调用该函数的代码,因此我猜测kc.updateToken()
函数正在使用它。
使用async/await
时,您需要使用Promises
插队。
如果kc
是KeyCloak
对象,则updateToken
返回一个Promise
,您可以简单地返回它而无需使用.success()
或.error()
像这样:
const refreshToken = () => {
const kc = transToObj(localStorage.getItem('kc'));
return kc.updateToken(30) // return the promise and let others await on it
.catch(e => {
window.location.reload(true);
});
};
答案 1 :(得分:0)
这是我的解决方法
我使用了npm软件包调用@ react-keycloak / web,该库可帮助提供程序的实例具有keycloak实例,因此我可以在所有应用程序中使用所有我需要的功能,而无需转换功能并失去适配器