Try to avoid requesting user data multiple times

This commit is contained in:
Patrick Jentsch 2021-12-01 17:07:05 +01:00
parent 82745629bc
commit ff514368c3

View File

@ -51,8 +51,16 @@ class App {
} }
getUserById(userId) { getUserById(userId) {
return new Promise((resolve, reject) => { let promise;
if (userId in this.data.users) {resolve(this.users[userId]);}
if (userId in this.data.users) {
if (this.data.users[userId] instanceof Promise) {
return this.data.users[userId];
} else {
return new Promise((resolve, reject) => {resolve(userValue);});
}
}
promise = new Promise((resolve, reject) => {
this.socket.emit('users.user.get', userId, response => { this.socket.emit('users.user.get', userId, response => {
if (response.code === 200) { if (response.code === 200) {
this.data.users[userId] = response.payload; this.data.users[userId] = response.payload;
@ -62,12 +70,13 @@ class App {
} }
}); });
}); });
this.data.users[userId] = promise;
return promise;
} }
usersPatchHandler(patch) { usersPatchHandler(patch) {
let listener; let listener;
console.log(patch);
this.data = jsonpatch.apply_patch(this.data, patch); this.data = jsonpatch.apply_patch(this.data, patch);
for (listener of this.eventListeners['users.patch']) {listener(patch);} for (listener of this.eventListeners['users.patch']) {listener(patch);}
} }