해결된 질문
작성
·
103
0
서버액션 파트에서 create-review.action 서버액션을 별도 파일로 만들었습니다. 아래 코드를 보면 딜레이가 2초 있습니다.
리뷰를 생성할 때만 딜레이를 걸어놨는데 삭제할때도 2초가 걸리는데 왜그런걸까요?
"use server";
import { delay } from "@/util/delay";
import { revalidatePath, revalidateTag } from "next/cache";
export async function createReviewAction(_: any, formData: FormData) {
const bookId = formData.get("bookId")?.toString();
const content = formData.get("content")?.toString(); //string타입으로 바꾸는 것
const author = formData.get("author")?.toString();
if (!content || !author || !bookId) {
//서버에서도 예외 방지
return {
state: false,
error: "리뷰 내용과 작성자를 입력해주세요",
};
}
try {
await delay(2000);
const response = await fetch(
`${process.env.NEXT_PUBLIC_API_SERVER_URL}/review`,
{
method: "POST",
headers: {
"Content-Type": "application/json", // JSON 데이터임을 명시
},
body: JSON.stringify({ bookId, content, author }),
}
);
if (!response.ok) {
//실패했다면
throw new Error(response.statusText);
}
// 5. 태그 기준, 데이터 캐시 재검증 -> 데이터 패칭에 특정 태그를 설정한 패칭만 재검증
revalidateTag(`review-${bookId}`); //book 페이지에 ReviewList 데이터 패칭 재검증
return {
state: true,
error: "",
};
} catch (e) {
return {
state: false,
error: `리뷰 저장에 실패했습니다. ${e}`,
};
}
}
답변 1
0
안녕하세요 이정환입니다.
음.. 별도의 딜레이를 설정하시지 않았다면, 혹시 딜레이가 걸리는게 아니라 그냥 Supabase 백엔드의 처리 속도가 조금 늦은게 아닐까요? 정확히 2초의 딜레이가 걸리는지 Network탭을 통해 측정해보시면 좋을 것 같아요!