summaryrefslogtreecommitdiff
path: root/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js')
-rw-r--r--addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js8
1 files changed, 3 insertions, 5 deletions
diff --git a/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js b/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js
index 634fbb5dbfe..56e02d9b5de 100644
--- a/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js
+++ b/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js
@@ -2,6 +2,7 @@ odoo.define('im_livechat/static/src/models/messaging_initializer/messaging_initi
'use strict';
const { registerInstancePatchModel } = require('mail/static/src/model/model_core.js');
+const { executeGracefully } = require('mail/static/src/utils/utils.js');
registerInstancePatchModel('mail.messaging_initializer', 'im_livechat/static/src/models/messaging_initializer/messaging_initializer.js', {
@@ -16,10 +17,7 @@ registerInstancePatchModel('mail.messaging_initializer', 'im_livechat/static/src
async _initChannels(initMessagingData) {
await this.async(() => this._super(initMessagingData));
const { channel_livechat = [] } = initMessagingData;
- for (const data of channel_livechat) {
- // there might be a lot of channels, insert each of them one by
- // one asynchronously to avoid blocking the UI
- await this.async(() => new Promise(resolve => setTimeout(resolve)));
+ return executeGracefully(channel_livechat.map(data => () => {
const channel = this.env.models['mail.thread'].insert(
this.env.models['mail.thread'].convertData(data),
);
@@ -28,7 +26,7 @@ registerInstancePatchModel('mail.messaging_initializer', 'im_livechat/static/src
if (!channel.isPinned) {
channel.pin();
}
- }
+ }));
},
});