Conversation: Wait for database fetch to add incoming messages
This commit is contained in:
parent
0f9bc57ccb
commit
3e5071e340
4 changed files with 21 additions and 4 deletions
|
@ -321,6 +321,7 @@
|
|||
this.debouncedUpdateLastMessage();
|
||||
},
|
||||
|
||||
// For outgoing messages, we can call this directly. We're already loaded.
|
||||
addSingleMessage(message) {
|
||||
const { id } = message;
|
||||
const existing = this.messageCollection.get(id);
|
||||
|
@ -342,6 +343,15 @@
|
|||
return model;
|
||||
},
|
||||
|
||||
// For incoming messages, they might arrive while we're in the middle of a bulk fetch
|
||||
// from the database. We'll wait until that is done to process this newly-arrived
|
||||
// message.
|
||||
async addIncomingMessage(message) {
|
||||
await this.inProgressFetch;
|
||||
|
||||
this.addSingleMessage(message);
|
||||
},
|
||||
|
||||
format() {
|
||||
return this.cachedProps;
|
||||
},
|
||||
|
|
|
@ -1115,8 +1115,8 @@
|
|||
}
|
||||
return msFromNow;
|
||||
},
|
||||
async setToExpire(force = false, options = {}) {
|
||||
const { skipSave } = options;
|
||||
async setToExpire(force = false, options) {
|
||||
const { skipSave } = options || {};
|
||||
|
||||
if (this.isExpiring() && (force || !this.get('expires_at'))) {
|
||||
const start = this.get('expirationStartTimestamp');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue