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

@@ -1241,7 +1241,7 @@ function getAvgProcessTimeHorizontalBarChart(chartData, content, isSingle, xUnit
// Created logic // Created logic
(async () => { (async () => {
isLoading.value = true; isLoading.value = true;
try {
const routeParams = route.params; const routeParams = route.params;
const primaryType = routeParams.primaryType; const primaryType = routeParams.primaryType;
const secondaryType = routeParams.secondaryType; const secondaryType = routeParams.secondaryType;
@@ -1288,6 +1288,9 @@ function getAvgProcessTimeHorizontalBarChart(chartData, content, isSingle, xUnit
compareDashboardData.value.freq.cases, contentData.freq, 'count'); compareDashboardData.value.freq.cases, contentData.freq, 'count');
[casesByTaskData.value, casesByTaskOptions.value] = getCaseByTaskHorizontalBarChart( [casesByTaskData.value, casesByTaskOptions.value] = getCaseByTaskHorizontalBarChart(
compareDashboardData.value.freq.cases_by_task, contentData.casesByTask, true, 'count'); compareDashboardData.value.freq.cases_by_task, contentData.casesByTask, true, 'count');
} catch (error) {
console.error('Failed to initialize compare dashboard:', error);
}
})(); })();
// Mounted // Mounted

View File

@@ -487,6 +487,7 @@ function setActivityBgImage(mapData) {
// Created logic // Created logic
(async () => { (async () => {
try {
const routeParams = route.params; const routeParams = route.params;
const file = route.meta.file; const file = route.meta.file;
const isCheckPage = route.name.includes('Check'); const isCheckPage = route.name.includes('Check');
@@ -522,7 +523,6 @@ function setActivityBgImage(mapData) {
await allMapDataStore.getFilterParams(); await allMapDataStore.getFilterParams();
await allMapDataStore.getTraceDetail(); await allMapDataStore.getTraceDetail();
isLoading.value = false;
emitter.on('saveModal', boolean => { emitter.on('saveModal', boolean => {
sidebarView.value = boolean; sidebarView.value = boolean;
sidebarFilter.value = boolean; sidebarFilter.value = boolean;
@@ -535,6 +535,11 @@ function setActivityBgImage(mapData) {
sidebarTraces.value = boolean; sidebarTraces.value = boolean;
sidebarState.value = boolean; sidebarState.value = boolean;
}); });
} catch (error) {
console.error('Failed to initialize map compare:', error);
} finally {
isLoading.value = false;
}
})(); })();
onBeforeUnmount(() => { onBeforeUnmount(() => {

View File

@@ -66,7 +66,7 @@ const { conformanceLogId, conformanceFilterId, conformanceLogCreateCheckId, conf
// Created logic // Created logic
(async () => { (async () => {
isLoading.value = true; isLoading.value = true;
try {
const params = route.params; const params = route.params;
const file = route.meta.file; const file = route.meta.file;
const isCheckPage = route.name.includes('Check'); const isCheckPage = route.name.includes('Check');
@@ -94,7 +94,11 @@ const { conformanceLogId, conformanceFilterId, conformanceLogCreateCheckId, conf
await conformanceStore.getConformanceReport(); await conformanceStore.getConformanceReport();
} }
await conformanceStore.getConformanceParams(); await conformanceStore.getConformanceParams();
} catch (error) {
console.error('Failed to initialize conformance:', error);
} finally {
setTimeout(() => isLoading.value = false, 500); setTimeout(() => isLoading.value = false, 500);
}
})(); })();
// Mounted // Mounted

View File

@@ -470,6 +470,7 @@ function setActivityBgImage(mapData) {
// Created logic // Created logic
(async () => { (async () => {
try {
const routeParams = route.params; const routeParams = route.params;
const file = route.meta.file; const file = route.meta.file;
const isCheckPage = route.name.includes('Check'); const isCheckPage = route.name.includes('Check');
@@ -505,7 +506,6 @@ function setActivityBgImage(mapData) {
await allMapDataStore.getFilterParams(); await allMapDataStore.getFilterParams();
await allMapDataStore.getTraceDetail(); await allMapDataStore.getTraceDetail();
isLoading.value = false;
emitter.on('saveModal', boolean => { emitter.on('saveModal', boolean => {
sidebarView.value = boolean; sidebarView.value = boolean;
sidebarFilter.value = boolean; sidebarFilter.value = boolean;
@@ -518,6 +518,11 @@ function setActivityBgImage(mapData) {
sidebarTraces.value = boolean; sidebarTraces.value = boolean;
sidebarState.value = boolean; sidebarState.value = boolean;
}); });
} catch (error) {
console.error('Failed to initialize map:', error);
} finally {
isLoading.value = false;
}
})(); })();
onBeforeUnmount(() => { onBeforeUnmount(() => {

View File

@@ -905,6 +905,7 @@ function getAvgWaitingTimeLineChart(chartData, content, yUnit) {
// Created logic // Created logic
(async () => { (async () => {
isLoading.value = true; isLoading.value = true;
try {
const routeParams = route.params; const routeParams = route.params;
const isCheckPage = route.name.includes('Check'); const isCheckPage = route.name.includes('Check');
const type = routeParams.type; const type = routeParams.type;
@@ -920,7 +921,6 @@ function getAvgWaitingTimeLineChart(chartData, content, yUnit) {
// 取得 Performance Data // 取得 Performance Data
await performanceStore.getPerformance(type, id); await performanceStore.getPerformance(type, id);
if(!performanceData.value?.time) { if(!performanceData.value?.time) {
isLoading.value = false;
return; return;
} }
avgProcessTimeByTaskHeight.value = getHorizontalBarHeight(performanceData.value.time.avg_process_time_by_task); avgProcessTimeByTaskHeight.value = getHorizontalBarHeight(performanceData.value.time.avg_process_time_by_task);
@@ -948,8 +948,11 @@ function getAvgWaitingTimeLineChart(chartData, content, yUnit) {
[casesByTaskData.value, casesByTaskOptions.value] = getHorizontalBarChart(performanceData.value.freq.cases_by_task, [casesByTaskData.value, casesByTaskOptions.value] = getHorizontalBarChart(performanceData.value.freq.cases_by_task,
contentData.casesByTask, true, 'count'); contentData.casesByTask, true, 'count');
// 停止 loading } catch (error) {
console.error('Failed to initialize performance:', error);
} finally {
isLoading.value = false; isLoading.value = false;
}
})(); })();
</script> </script>
<style scoped> <style scoped>