Simplifying promises
This commit is contained in:
parent
3cfb74be54
commit
1bb6d893e0
2 changed files with 27 additions and 42 deletions
|
@ -436,18 +436,10 @@ export class GameRoom {
|
||||||
|
|
||||||
private getVariableManager(): Promise<VariablesManager> {
|
private getVariableManager(): Promise<VariablesManager> {
|
||||||
if (!this.variableManagerPromise) {
|
if (!this.variableManagerPromise) {
|
||||||
this.variableManagerPromise = new Promise<VariablesManager>((resolve, reject) => {
|
this.variableManagerPromise = this.getMap()
|
||||||
this.getMap()
|
|
||||||
.then((map) => {
|
.then((map) => {
|
||||||
const variablesManager = new VariablesManager(this.roomUrl, map);
|
const variablesManager = new VariablesManager(this.roomUrl, map);
|
||||||
variablesManager
|
return variablesManager.init();
|
||||||
.init()
|
|
||||||
.then(() => {
|
|
||||||
resolve(variablesManager);
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
reject(e);
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
if (e instanceof LocalUrlError) {
|
if (e instanceof LocalUrlError) {
|
||||||
|
@ -465,19 +457,11 @@ export class GameRoom {
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
const variablesManager = new VariablesManager(this.roomUrl, null);
|
const variablesManager = new VariablesManager(this.roomUrl, null);
|
||||||
variablesManager
|
return variablesManager.init();
|
||||||
.init()
|
|
||||||
.then(() => {
|
|
||||||
resolve(variablesManager);
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
reject(e);
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
reject(e);
|
throw e;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return this.variableManagerPromise;
|
return this.variableManagerPromise;
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,14 +45,15 @@ export class VariablesManager {
|
||||||
/**
|
/**
|
||||||
* Let's load data from the Redis backend.
|
* Let's load data from the Redis backend.
|
||||||
*/
|
*/
|
||||||
public async init(): Promise<void> {
|
public async init(): Promise<VariablesManager> {
|
||||||
if (!this.shouldPersist()) {
|
if (!this.shouldPersist()) {
|
||||||
return;
|
return this;
|
||||||
}
|
}
|
||||||
const variables = await variablesRepository.loadVariables(this.roomUrl);
|
const variables = await variablesRepository.loadVariables(this.roomUrl);
|
||||||
for (const key in variables) {
|
for (const key in variables) {
|
||||||
this._variables.set(key, variables[key]);
|
this._variables.set(key, variables[key]);
|
||||||
}
|
}
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue