Merge pull request #1575 from matrix-org/luke/fix-flair-store-again

Fix Flair not appearing due to missing this._usersInFlight
pull/21833/head
Matthew Hodgson 2017-11-03 22:44:16 +00:00 committed by GitHub
commit d4adff3d25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 0 deletions

View File

@ -48,6 +48,9 @@ class FlairStore extends EventEmitter {
// reject: () => {} // reject: () => {}
// } // }
}; };
this._usersInFlight = {
// This has the same schema as _usersPending
};
this._debounceTimeoutID = null; this._debounceTimeoutID = null;
} }
@ -125,12 +128,16 @@ class FlairStore extends EventEmitter {
} catch (err) { } catch (err) {
// Propagate the same error to all usersInFlight // Propagate the same error to all usersInFlight
Object.keys(this._usersInFlight).forEach((userId) => { Object.keys(this._usersInFlight).forEach((userId) => {
// The promise should always exist for userId, but do a null-check anyway
if (!this._usersInFlight[userId]) return;
this._usersInFlight[userId].reject(err); this._usersInFlight[userId].reject(err);
}); });
return; return;
} }
const updatedUserGroups = resp.users; const updatedUserGroups = resp.users;
Object.keys(this._usersInFlight).forEach((userId) => { Object.keys(this._usersInFlight).forEach((userId) => {
// The promise should always exist for userId, but do a null-check anyway
if (!this._usersInFlight[userId]) return;
this._usersInFlight[userId].resolve(updatedUserGroups[userId] || []); this._usersInFlight[userId].resolve(updatedUserGroups[userId] || []);
}); });
} }