자바스크립트를 공부하는데 async / await 가 짱이다 라고 생각한다면 당신은 공부를 더 하셔야 합니다. 근데 저도 잘 몰랐으니까 같이 공부합시다.
async / await가 왜 좋은지를 알려면 역사를 알아야하지. sveltekit에서 비동기
Callback 지옥과 비동기 처리의 발전: SvelteKit에서의 변화
getData1((result1) => {
getData2((result2) => {
getData3((result3) => {
// 결과를 처리하는 코드
});
});
});
이런 구조는 코드의 가독성을 떨어뜨리고, 오류 처리가 복잡해지며, 유지보수가 어려워진다는 단점이 있습니다.
getData1()
.then(result1 => getData2())
.then(result2 => getData3())
.then(result3 => {
// 결과를 처리하는 코드
})
.catch(error => {
// 오류 처리
});
하지만 여전히 여러 개의 비동기 작업을 병렬로 처리하기에는 한계가 있었습니다.
async function fetchData() {
try {
const result1 = await getData1();
const result2 = await getData2();
const result3 = await getData3();
// 결과를 처리하는 코드
} catch (error) {
// 오류 처리
}
}
async function loadData() {
try {
const [
monthlyVisitorCount,
loginConflicts,
{ inProgressCount, uploadPendingCount, processingCount },
upcomingEventList,
inProgressToCompletedCount,
customerInquiryCount,
prevDayVisitLog,
thisMonthVisitLog
] = await Promise.all([
getMonthlyVisitorCount(),
getLoginConflictsCount(),
getSupportStatus(),
upcomingEvents(),
completedSupportRequests(),
getCustomerInquiries(),
getPrevDayVisitLog(),
getThisMonthVisitLog()
]);
// 데이터 처리
} catch (error) {
// 오류 처리
}
}
이와 같이 SvelteKit을 사용하면 비동기 코드의 가독성과 유지보수성을 높이고, 성능 최적화를 통해 사용자 경험을 향상시킬 수 있습니다.
과거의 콜백 지옥에서 비동기 처리 방식의 발전을 통해, SvelteKit과 같은 현대적인 프레임워크에서는 더 간결하고 효율적인 코드 작성을 가능하게 합니다. 이를 통해 개발자는 복잡한 비동기 로직을 쉽게 관리하고, 사용자에게 더 나은 경험을 제공할 수 있습니다. ORM 내에서 특히 prisma같은 경우는 $transaction으로 함수로 모든 성공을 보장할 수도 있습니다. 일관성 굿굿 이는 추후 공부해보시죠