Fix dangling promises in forEach calls

This will ensure that we are awaiting all calls by using `Promise.all`.
This commit is contained in:
Koen Vlaswinkel
2022-10-27 14:06:44 +02:00
parent 2ccdb9e577
commit 4c469e7386

View File

@@ -616,7 +616,7 @@ export class QueryHistoryManager extends DisposableObject {
const status = variantAnalysisStatusToQueryStatus(variantAnalysis.status); const status = variantAnalysisStatusToQueryStatus(variantAnalysis.status);
if (items.length > 0) { if (items.length > 0) {
items.forEach(async (item) => { items.forEach((item) => {
const variantAnalysisHistoryItem = item as VariantAnalysisHistoryItem; const variantAnalysisHistoryItem = item as VariantAnalysisHistoryItem;
variantAnalysisHistoryItem.status = status; variantAnalysisHistoryItem.status = status;
variantAnalysisHistoryItem.failureReason = variantAnalysis.failureReason; variantAnalysisHistoryItem.failureReason = variantAnalysis.failureReason;
@@ -634,9 +634,9 @@ export class QueryHistoryManager extends DisposableObject {
const variantAnalysisRemovedSubscription = this.variantAnalysisManager.onVariantAnalysisRemoved(async (variantAnalysis) => { const variantAnalysisRemovedSubscription = this.variantAnalysisManager.onVariantAnalysisRemoved(async (variantAnalysis) => {
const items = this.treeDataProvider.allHistory.filter(i => i.t === 'variant-analysis' && i.variantAnalysis.id === variantAnalysis.id); const items = this.treeDataProvider.allHistory.filter(i => i.t === 'variant-analysis' && i.variantAnalysis.id === variantAnalysis.id);
items.forEach(async (item) => { await Promise.all(items.map(async (item) => {
await this.removeVariantAnalysis(item as VariantAnalysisHistoryItem); await this.removeVariantAnalysis(item as VariantAnalysisHistoryItem);
}); }));
}); });
this.push(variantAnalysisAddedSubscription); this.push(variantAnalysisAddedSubscription);
@@ -689,14 +689,14 @@ export class QueryHistoryManager extends DisposableObject {
void logger.log(`Reading cached query history from '${this.queryMetadataStorageLocation}'.`); void logger.log(`Reading cached query history from '${this.queryMetadataStorageLocation}'.`);
const history = await slurpQueryHistory(this.queryMetadataStorageLocation); const history = await slurpQueryHistory(this.queryMetadataStorageLocation);
this.treeDataProvider.allHistory = history; this.treeDataProvider.allHistory = history;
this.treeDataProvider.allHistory.forEach(async (item) => { await Promise.all(this.treeDataProvider.allHistory.map(async (item) => {
if (item.t === 'remote') { if (item.t === 'remote') {
await this.remoteQueriesManager.rehydrateRemoteQuery(item.queryId, item.remoteQuery, item.status); await this.remoteQueriesManager.rehydrateRemoteQuery(item.queryId, item.remoteQuery, item.status);
} }
if (item.t === 'variant-analysis') { if (item.t === 'variant-analysis') {
await this.variantAnalysisManager.rehydrateVariantAnalysis(item.variantAnalysis, item.status); await this.variantAnalysisManager.rehydrateVariantAnalysis(item.variantAnalysis, item.status);
} }
}); }));
} }
async writeQueryHistory(): Promise<void> { async writeQueryHistory(): Promise<void> {