getProfiles: Fetch a maximum of three profiles at at a time
This commit is contained in:
@@ -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'))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user