프로그래밍/Javascript

JS 프로미스

즐겁게 하하하 2022. 4. 28. 09:34
728x90

프로미스 생성, 실행

//프로미스 생성
const promise1 = function(param){
  return new Promise(function(resolve,reject){
    if(param){
      resolve("바보");
    }
    else{
      reject("아닌데");
    }
  });
}

//프로미스 실행
promise1(true).then(function(result){
  console.log(result);//바보
},function(err){
  console.log(err);//아닌데
});

 

여러 개의 프로미스가 모두 완료되었을 때 실행하는 방법 

const param = true;
const promise1 = new Promise(function(resolve,reject){
    if(param){
      resolve("바보");
    }
    else{
      reject("아닌데");
    }
});

const promise2 = new Promise(function(resolve,reject){
    if(param){
      resolve("바보2");
    }
    else{
      reject("아닌데2");
    }
});

Promise.all([promise1,promise2]).then(function(values){
    console.log("1,2,3 모두완료",values);
});

 

function setCustSelected(){
	
	var codeIdArr = []; 
	$.when(
		$(".custCheckBox").each(function(index, item) { 
			if( $(this).prop("checked") ){ codeIdArr.push($(this).val()); } 
	    })
	  ).then(function(){
		 if(codeIdArr.length > 0 ){
			setSelectCouponCust( codeIdArr ); // out :: 사용하려는 페이지 에서 선언
			table_cust2.ajax.reload();
		}else{
			alert("쿠폰을 발급할 고객사를 선택하세요.");
			return false;
		}
	  });
}

 

	$('document').ready(function(){
		async function fetchData() {
			try {
				var result = await validateSubmitSurv();			
				if(!result.isSubmitted && !result.isExpired) {
					await prevSurvQueList();						
				}else{												
					showReconnectView(result);
				}
			}catch(error) {
				console.error("Promise 수행 중 ERROR", error);
			}
		}
	})
	
	// 검사 Function
	function validateSubmitSurv() {
		return new Promise(function(resolve, reject) {
			$.ajax({
				url: "/surveyView/validateSubmitSurv.do",
				data: {testId: testId, testKey: testKey},
				dataType: 'json',
				method: 'get',
				success: function(result) {
					if(result.submitCnt > 0) { 															 
						resolve({isSubmitted: true, survData: result.survData});						 
					}else{																				 
						if(result.survData.sttCd == "END") {											 
							resolve({isSubmitted: false, isExpired: true, survData: result.survData});	 
						}else{																			 
							resolve(false);																 
						}
					}
				},
				error: function(XMLHttpRequest,status,error) {
					fn_error(XMLHttpRequest);
				}
			});
		});
	}
    
function prevSurvQueList() {
	return new Promise(function(resolve, reject) {
		$.ajax({
			url: "/surveyView/prevSurvQueList.do",
			data: {svyId: svyId},
			dataType: 'json',
			method: 'get',
			success: function(result) {
				
			}
		});
	});
}
728x90