오늘 나는 다음을 발견했습니다: for async of

The code i was working on

Live preview

GitHub의 나머지 API를 사용하는 동안 사용자를 팔로우하면 사용자의 팔로워 가져오기가 반환되지 않으며 별도의 요청을 해야 한다는 것을 알았습니다.

지금까지는 좋았기 때문에 두 번째 요청을 기다린 다음 사용자가 나를 팔로우하는지 여부를 삽입하는 forEach 루프를 추가했습니다.

export const getUserWithFollowingDetails=async(token:string,url:string,username:string)=>{
 let followers:any=[]
const users = await getAuthedUserFollowers(token,url)
users.forEach((user)=>{
user.following_me = await getIsUserFollowingMe(token,username,user.login)
}).catch((e)=>{})
followers.push(user)
  })
  return followers
}


코드는 작동했지만 이상한 결과가 나왔습니다. 코드는 결국 내가 예상한 대로 보였지만 반응이 그것을 알아채고 다시 렌더링하기에는 너무 늦었기 때문에 출력되는 데이터가 내가 찾은 몇 가지 인터넷 검색 후에 콘솔에 기록된 값과 일치하지 않았습니다. for async..는 항목을 반복하는 방법이며 배열 개체에 비동기 작업이 발생하는 동안 대기합니다.

export const getUserWithFollowingDetails=async(token:string,url:string,username:string)=>{
        let followers:any=[]
         const users = await getAuthedUserFollowers(token,url)
         for await (const user of users){
         //@ts-ignore
user.following_me = await getIsUserFollowingMe(token,username,user.login)
         .catch((e)=>{})
         followers.push(user)
         }
         return followers
        }



good explanation

The code i was working on

Live preview

좋은 웹페이지 즐겨찾기