I'm trying to set the property of sso in this constructor, but as it is asynchronous, it is getting undefined when I console.log it. How can I await everything before the fetch resolves?
export class AuthProvider {
constructor({ onStart, onSignIn, onError }) {
fetch(`https://${configs.RETICULUM_SERVER}`)
.then(r => r.text())
.then(r => {
const el = document.createElement("html");
el.innerHTML = r;
for (const _el of el.getElementsByTagName("head")[0].getElementsByTagName("script")) {
if (!_el.innerHTML.startsWith("window.APP_CONFIG = JSON.parse('")) continue;
const conf = _el.innerHTML.substring(32, _el.innerHTML.length - 2);
const newSso = JSON.parse(JSON.parse(conf).auth.sso.replace(/\\"/g, '"'));
this.sso = newSso;
}
});
console.log("sso config", this.sso); //undefined
... ...