Add try-catch to async IIFEs to prevent unhandled rejections

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 18:11:27 +08:00
parent ede7becb3a
commit 7d5918837b
5 changed files with 224 additions and 204 deletions

View File

@@ -470,54 +470,59 @@ function setActivityBgImage(mapData) {
// Created logic
(async () => {
const routeParams = route.params;
const file = route.meta.file;
const isCheckPage = route.name.includes('Check');
try {
const routeParams = route.params;
const file = route.meta.file;
const isCheckPage = route.name.includes('Check');
isLoading.value = true;
switch (routeParams.type) {
case 'log':
if(!isCheckPage) {
logId.value = routeParams.fileId;
baseLogId.value = routeParams.fileId;
} else {
logId.value = file.parent.id;
baseLogId.value = file.parent.id;
}
break;
case 'filter':
if(!isCheckPage) {
createFilterId.value = routeParams.fileId;
} else {
createFilterId.value = file.parent.id;
}
await allMapDataStore.fetchFunnel(createFilterId.value);
isRuleData.value = Array.from(temporaryData.value);
ruleData.value = isRuleData.value.map(e => sidebarFilterRefComp.value.setRule(e));
break;
isLoading.value = true;
switch (routeParams.type) {
case 'log':
if(!isCheckPage) {
logId.value = routeParams.fileId;
baseLogId.value = routeParams.fileId;
} else {
logId.value = file.parent.id;
baseLogId.value = file.parent.id;
}
break;
case 'filter':
if(!isCheckPage) {
createFilterId.value = routeParams.fileId;
} else {
createFilterId.value = file.parent.id;
}
await allMapDataStore.fetchFunnel(createFilterId.value);
isRuleData.value = Array.from(temporaryData.value);
ruleData.value = isRuleData.value.map(e => sidebarFilterRefComp.value.setRule(e));
break;
}
await allMapDataStore.getAllMapData();
await allMapDataStore.getAllTrace();
traceId.value = traces.value[0]?.id;
baseTraceId.value = baseTraces.value[0]?.id;
await createCy(mapType.value);
await allMapDataStore.getFilterParams();
await allMapDataStore.getTraceDetail();
emitter.on('saveModal', boolean => {
sidebarView.value = boolean;
sidebarFilter.value = boolean;
sidebarTraces.value = boolean;
sidebarState.value = boolean;
});
emitter.on('leaveFilter', boolean => {
sidebarView.value = boolean;
sidebarFilter.value = boolean;
sidebarTraces.value = boolean;
sidebarState.value = boolean;
});
} catch (error) {
console.error('Failed to initialize map:', error);
} finally {
isLoading.value = false;
}
await allMapDataStore.getAllMapData();
await allMapDataStore.getAllTrace();
traceId.value = traces.value[0]?.id;
baseTraceId.value = baseTraces.value[0]?.id;
await createCy(mapType.value);
await allMapDataStore.getFilterParams();
await allMapDataStore.getTraceDetail();
isLoading.value = false;
emitter.on('saveModal', boolean => {
sidebarView.value = boolean;
sidebarFilter.value = boolean;
sidebarTraces.value = boolean;
sidebarState.value = boolean;
});
emitter.on('leaveFilter', boolean => {
sidebarView.value = boolean;
sidebarFilter.value = boolean;
sidebarTraces.value = boolean;
sidebarState.value = boolean;
});
})();
onBeforeUnmount(() => {