diff --git a/src/stores/FlairStore.js b/src/stores/FlairStore.js index 9424503390a..1d20148c0dd 100644 --- a/src/stores/FlairStore.js +++ b/src/stores/FlairStore.js @@ -48,6 +48,9 @@ class FlairStore extends EventEmitter { // reject: () => {} // } }; + this._usersInFlight = { + // This has the same schema as _usersPending + }; this._debounceTimeoutID = null; } @@ -125,12 +128,16 @@ class FlairStore extends EventEmitter { } catch (err) { // Propagate the same error to all usersInFlight 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); }); return; } const updatedUserGroups = resp.users; 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] || []); }); }