반복문내 비동기 코드 처리에 대한 궁금증
안녕하세요. HEROPY님 강의를 보면서 공부하다가 의문사항? 궁금사항이 생겨 질문남깁니다.
프로젝트의 store/movie.js를 보면 페이징 처리를 위해 한번에 Ajax 요청으로 받아오는게 10개뿐이므로 각 각의 요청을 나눠서
최대 30개까지 받을 수 있는데요. 그 과정에서 반복문내에서 Ajax 요청을 합니다.
제가 궁금한게 반복문내에서 async, await를 사용하여 비동기 요청을하면 응답 순서가 반드시 지켜지는건가요?
이 질문을 드리는 이유는 예전에 비슷한 코드를 작성할 때 요청 순서가 서버 네트워크 상태에 따라서 뒤죽박죽인 경우가 있어서
고민했던 적이 있습니다. 그 때 당시에는 1) 한번에 들고오는 응답 갯수를 늘린다 2) 반복문내 요청에서는 동기 코드로 ajax 요청을 한
다( 매우 좋지 않은 방법이지만..) 이런 방식으로 해결하였던거 같습니다.
사실 현재 프로젝트 상에서 순서를 안지키더라도 크게 문제가 없을 듯합니다만 궁금해서 질문드립니다.
답변 2
1
hellofrontdev 님 안녕하세요~
역시 주말에도 공부하시는군요!
멋지십니다!
혹시 예전에 작성하셨다는 그 비슷한 코드에서 forEach나 map 등 콜백을 사용하는 반복을 쓰신 건 아닐까요?
forEach나 map 같이 콜백을 사용하는 반복은 구조적으로 응답을 기다릴 수가 없고,
결론적으로 강의 예제와 같이 구식의 for문을 사용하면 응답 순서를 기다릴 수 있습니다!
테스트를 위해서 완성 예제 화면을 축소한 후 최대 30개로 검색을 하시면,
응답(검색된 영화 목록)이 순서대로 빵.빵.빵. 찍히는 것을 보실 수 있습니다.
혹시 응답이 너무 빠르면 네트워크 속도를 줄여서(강의에 내용 있어요~) 테스트해 보시면 도움이 되지 않을까 하네요 :)
에러가 나서 질문올립니다.
1
196
1
snowtemplate 를 설치하는중에 에러가 발생합니다.
1
500
1
안녕하세요 Vite + Svelte로 프로젝트 시작하려고하는데 prettier + eslint 설정이 잘 안되고 있습니당
1
779
1
autoprefixer를 스태틱한 css에 적용할 수 있는 방법이 있을까요?
2
563
1
영상 위치 [11:21] 안내
1
295
1
최종 사이트 배색
1
242
1
강사님 질문인데요
1
261
1
scss는 prependdata로 미리 불러와야되나요?
1
374
1
vite-svelte-ts로 진행중인데용
1
478
1
vite로 진행중인데 개발자도구 키면 내용이 조금 달라요
1
427
1
vite로 진행해도 문제 없겠지용?
1
361
1
Degit 이슈
1
368
3
공개해주신 파일 config 파일들은 어떤 원리로 실행이 되는건가요?
1
277
1
gitignore 처리에 대하여
1
259
1
babel-plugin-transform-remove-console 정상 작동 안되는 분
1
403
1
snowpack을 사용하신 이유가 있으신가요?
1
344
1
Snowpack 설치 하다가 에러 납니다~
1
277
2
script에서 img load event를 사용하면 해당 url이 로딩될 때까지 기다리는 건가요?
1
385
1
axios 요청 시 y 파라미터가 빈 값인 경우 에러가 발생합니다
1
380
1
에러 질문 있습니다!
1
796
1
sveltekit으로 개발된 프로젝트를 iis나 server로 띄우는 방법이 있을까요??
1
1055
1
npm run dev:netlify 명령어 실행시
1
314
1
axios로 omdbapi를 받을때 http보다는 https?
1
173
1
svelte를 프론트엔드로 사용하고 php를 벡엔드로 사용하려고 하는데 svelte와 궁합이 잘 맞는 벡엔드 언어가 따로 있나요?
2
450
1





