getProfiles: Fetch a maximum of three profiles at at a time
This commit is contained in:
parent
d9b951bfcb
commit
02a732c511
1 changed files with 10 additions and 3 deletions
|
@ -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'))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue