getProfiles: Fetch a maximum of three profiles at at a time

This commit is contained in:
Scott Nonnenberg 2022-01-11 11:40:20 -08:00 committed by GitHub
parent d9b951bfcb
commit 02a732c511
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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