Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
4d76194a9d
1 changed files with 16 additions and 5 deletions
|
@ -154,19 +154,29 @@ class FlairStore extends EventEmitter {
|
||||||
return this._groupProfiles[groupId];
|
return this._groupProfiles[groupId];
|
||||||
}
|
}
|
||||||
|
|
||||||
// No request yet, start one
|
// A request is ongoing, wait for it to complete and return the group profile.
|
||||||
if (!this._groupProfilesPromise[groupId]) {
|
if (this._groupProfilesPromise[groupId]) {
|
||||||
this._groupProfilesPromise[groupId] = matrixClient.getGroupProfile(groupId);
|
try {
|
||||||
|
await this._groupProfilesPromise[groupId];
|
||||||
|
} catch (e) {
|
||||||
|
// Don't log the error; this is done below
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this._groupProfiles[groupId];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// No request yet, start one
|
||||||
|
console.log('FlairStore: Request group profile of ' + groupId);
|
||||||
|
this._groupProfilesPromise[groupId] = matrixClient.getGroupProfile(groupId);
|
||||||
|
|
||||||
let profile;
|
let profile;
|
||||||
try {
|
try {
|
||||||
profile = await this._groupProfilesPromise[groupId];
|
profile = await this._groupProfilesPromise[groupId];
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('Failed to get group profile for ' + groupId, e);
|
console.log('FlairStore: Failed to get group profile for ' + groupId, e);
|
||||||
// Don't retry, but allow a retry when the profile is next requested
|
// Don't retry, but allow a retry when the profile is next requested
|
||||||
delete this._groupProfilesPromise[groupId];
|
delete this._groupProfilesPromise[groupId];
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._groupProfiles[groupId] = {
|
this._groupProfiles[groupId] = {
|
||||||
|
@ -179,6 +189,7 @@ class FlairStore extends EventEmitter {
|
||||||
|
|
||||||
/// XXX: This is verging on recreating a third "Flux"-looking Store. We really
|
/// XXX: This is verging on recreating a third "Flux"-looking Store. We really
|
||||||
/// should replace FlairStore with a Flux store and some async actions.
|
/// should replace FlairStore with a Flux store and some async actions.
|
||||||
|
console.log('FlairStore: Emit updateGroupProfile for ' + groupId);
|
||||||
this.emit('updateGroupProfile');
|
this.emit('updateGroupProfile');
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
Loading…
Reference in a new issue