function checkValid(x) {
return new Promise(function(resolve) {
$.ajax({
type: "POST",
url: "/api/",
data: JSON.stringify({ "x": x }),
contentType: "application/json",
dataType: "json",
beforeSend: function () {
// 필요하면 로딩 표시 시작
// showLoading();
},
success: function (data) {
resolve(true); // 성공시
},
error: function () {
resolve(false); // 실패, 에러
},
complete: function () {
// 필요하면 로딩 숨김
// hideLoading();
}
});
// 여러개 ajax 항목 동시 실행
});
}async function saveOrSubmit() {
const isValid = await checkValid(x);
if (!isValid) {
return; // 검증 실패하면 종료
}
console.log("모든 검증 완료 → 실제 저장/처리 로직 실행");
proceedToNextStep(); // 또는 저장 AJAX 호출 등
}$("#btn").click(function() {
saveOrSubmit();
});그런데, 위는 여러개 동시 호출방식이고, 단순하게 절차 단계마다 체크가 필요한 경우에는, async await 를 사용하는게 훨씬 더 직관적임.
async function check(){}//호출하는 함수도 async 설정 필요
const isValid = await check(value); if (!isValid) {
alert('유효하지 않습니다.');
return; // 중단
}