diff --git a/ts/models/conversations.ts b/ts/models/conversations.ts index ec778012e..54ec0a995 100644 --- a/ts/models/conversations.ts +++ b/ts/models/conversations.ts @@ -4,6 +4,8 @@ /* eslint-disable camelcase */ import { compact, isNumber } from 'lodash'; import { batch as batchDispatch } from 'react-redux'; +import PQueue from 'p-queue'; + import type { ConversationAttributesType, ConversationModelCollectionType, @@ -4624,9 +4626,14 @@ export class ConversationModel extends window.Backbone // request all conversation members' keys const conversations = this.getMembers() as unknown as Array; - await Promise.all( - window._.map(conversations, conversation => - getProfile(conversation.get('uuid'), conversation.get('e164')) + + const queue = new PQueue({ + concurrency: 3, + }); + await queue.addAll( + conversations.map( + conversation => () => + getProfile(conversation.get('uuid'), conversation.get('e164')) ) ); }