async function forLoop(posts) {
let devJson = await fetching(); // API에서 전부 볼러오는 함수임
for (let index = 0; index < indexEnd; index++) {
let blog = await makeBlogData(index, devJson); // 가져온 제이슨 파일 파싱해서 저장한 객체 돌려줌
await pusher(blog, posts); // 여기서 posts에 저장함
}
}
저 포문 돌면서 만들고 넣고 만들고 넣고 하고 싶은데
비동기라 index가 마지막 까지 간다음에 포문이 돌아버린단 말이야
그래서 마지막 데이터로 다 index가 마지막으로 고정된채 동아버림
index 마지막까지 가지 않고 0부터 저 2개 함수 실행할려면 어캄?
진짜 생각안나면 let없을때쓰던 클로저로해결ㅇㅇ
흠 고려해보겠음 ㄱㅅㄱㅅ
해당 댓글은 삭제되었습니다.
promise all 하면 순차가 아니래서 이게 순차라 돌아야대는거라 안하고 있엇는데 함 해볼게 async for 라이브러리가 있구나 ㄱㅅㄱㅅ
뭐가 문제라는거임 저 코드에서 index가 마지막이 될 수가 없는데??
비동기라 index가 indexEnd - 1 상태에서 indexEnd - 1 횟수만큼 작동되어버려
내가 내부함수를 잘못 짠건가?
원래는 저렇게 되는거임? 첨해봐서 js
await 하면 함수실행이 처리되는 동안 멈춤. 혹시 babel 같은거 쓰는거임?
vue 쓰고 있긴한대 npm 안에 바벨있는 거 같음 @babel 맞음 노드모듈안에 있는거
바벨 찾아보니까 es 이전버전으로 변환시켜주는 거 같은데 이게 문제일 수도 있음?
현제 테스트는 로컬호스트 크롬에서 하는 중
출력된 코드에서 저 동작 부분을 찾아보셈
개발자 도구에 찍히는 코드는 내가 보고 있는 코드랑 똑같이 보이던데
포문 안에서 로그 띄워바
어 진짜 순서대로 찍히네???
헐 포문이 문제가 아니었나봄..
이제 뭐가 문젠지도 모르겠다 어쨋든 알려줘서 ㄳ..
makeblogdata 함수 어떻게 짜여져 있는지 올려보던지
https://ideone.com/GCWzry
요깄음
여기 함수 안에 post가 어디서 왔는진 모르겟는데 여기다가 index를 저장하니깐 똑같은 index만 보이는거임.
아 마지막에 들어오는 인덱스로 고정되는건가
이 함수 내에서 post를 새로 생성해서 해보고, 느낌상 pusher함수도 이상할꺼 같음
async function pusher(blog, posts) { posts.push(blog); return posts; } 이거임..
posts 배열에 post 하나 넣는거 저 blog 가 post 임 아 이름 맞춰야겠네
아 이해했다 나는 post 객체를 여러개 만들고 싶었던건데 지금 상황은 그냥 포문 다돌고 마지막 데이터를 post에 넣은 것 만 보여주네...
와 님 저 성공했어요 ㅠㅠㅠㅠ 감사합니다 엉엉어ㅠㅠㅠ