그리고 나서 fetchImage에 요런 순서로 Task가 들어가있다고 해봅시다
이걸 보면 await 이 있어서 image1이 끝나면 image2가 실행되고
image3, image4도 순차적으로 진행되는 걸 알 수 있음
그럼 어떻게 한번에 로드 되게 해줄 수 있을까?
한 가지 방법은 Task를 나눠버리는 거라구 했죠
이러면 너무 비효율적이에요
이렇게 async let 키워드를 붙여서 함수에 이름을 붙여주고
그 결과 값들을 튜플로 한군데에 모아주면 비동기로 한번에 다 처리가 시작됨
주의 할 건 try 중에 하나라도 에러가 발생하면 빠져나간다는 거!
try?로 해서 옵셔널로 만들어주면 괜찮음!
뿜!
한번에 다 로드합니다~!~!
await 이 괄호안에 있는 (try fetchImage1, ...)을 다 기다려주는거에요!
async let 의 장점은 메소드가 같지 않아도 되고, return타입도 안 같아도 됨!
그럼 여기서 또 질문을 던져볼 수 있겠죠
만약에 50개가 넘는 fetch 메소드를 async let으로 처리하고 싶을 땐 이렇게 하나하나 다 작성해줘야하나??
No
태스크 그룹을 쓰면 됩니다 이건 담 시간에 하는걸로