diff options
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.js | 8 |
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(); } - } + })); }, }); |
