비동기에서 비동기 호출시...

Web Development assistant·2022년 4월 8일
0

# javascript

목록 보기
21/36

비동기로 값을 요청하는데, 그 안에서 다시 비동기 요청한다.

그렇기에 첫 번째 비동기 호출이후 두 번째 비동기의 응답이 오던 말던
동기 함수로 넘어가고 그렇게 값을 리턴받지도 못한채
동기 함수들이 종료되며 끝나버린다.

자바스크립트 호출스택
https://velog.io/@hth9876/%ED%98%B8%EC%B6%9C%EC%8A%A4%ED%83%9D

따라서 동기 함수 내부에 내가 요청한 값의 길이 == 내가 받을 값의 길이
조건을 주어

if(request.length === response.length){
	let asyncValue = ...비동기 함수...
	valueArr.push(asyncValue); 		//동기함수 종료후 정상적으로 값이 들어감.
 	//여기서 2차 비동기로 들어온 값을 가지고 작업을 해야함
}else{
	return;ㅇ
}

이런식으로 조건을 주면 동기함수일땐 값을 리턴받지 못 해 return으로
함수가 끝나버리지만
그 후에 2차 비동기 로 값을 리턴 받는다면 if절로 돌아가
valueArr에 정상적으로 push가 되고,
valueArr.push(asyncValue); 바로 밑에서 부터 들어온 값을 가지고 작업할 수 있다.

비동기 -> 비동기 호출 -> 요청갯수, 응답갯수 비교 return; ->
정상적으로 값이 들어오면 함수가 계속해서 이어지고 -> 바로 밑에서 부터 계속해서 작업.

0개의 댓글