diff --git a/src/services/cipher.service.ts b/src/services/cipher.service.ts index 053606858c..b7b82eece9 100644 --- a/src/services/cipher.service.ts +++ b/src/services/cipher.service.ts @@ -181,10 +181,13 @@ export class CipherService implements CipherServiceAbstraction { throw new Error('No key.'); } + const promises: any[] = []; const ciphers = await this.getAll(); - for (let i = 0; i < ciphers.length; i++) { - decCiphers.push(await ciphers[i].decrypt()); - } + ciphers.forEach((cipher) => { + promises.push(cipher.decrypt().then((c) => decCiphers.push(c))); + }); + + await Promise.all(promises); decCiphers.sort(this.getLocaleSortingFunction()); this.decryptedCipherCache = decCiphers; return this.decryptedCipherCache; diff --git a/src/services/collection.service.ts b/src/services/collection.service.ts index cd259fbc47..152d91713b 100644 --- a/src/services/collection.service.ts +++ b/src/services/collection.service.ts @@ -48,9 +48,11 @@ export class CollectionService implements CollectionServiceAbstraction { return []; } const decCollections: CollectionView[] = []; - for (let i = 0; i < collections.length; i++) { - decCollections.push(await collections[i].decrypt()); - } + const promises: Array<Promise<any>> = []; + collections.forEach((collection) => { + promises.push(collection.decrypt().then((c) => decCollections.push(c))); + }); + await Promise.all(promises); return decCollections.sort(Utils.getSortFunction(this.i18nService, 'name')); } diff --git a/src/services/folder.service.ts b/src/services/folder.service.ts index b37b97786b..c03cb0c298 100644 --- a/src/services/folder.service.ts +++ b/src/services/folder.service.ts @@ -78,10 +78,13 @@ export class FolderService implements FolderServiceAbstraction { } const decFolders: FolderView[] = []; + const promises: Array<Promise<any>> = []; const folders = await this.getAll(); - for (let i = 0; i < folders.length; i++) { - decFolders.push(await folders[i].decrypt()); - } + folders.forEach((folder) => { + promises.push(folder.decrypt().then((f) => decFolders.push(f))); + }); + + await Promise.all(promises); decFolders.sort(Utils.getSortFunction(this.i18nService, 'name')); const noneFolder = new FolderView();