완료 처리기가있는 함수가 있고 Im 함수 내에 두 개의 개별 비동기 호출이 있습니다.다중 비동기 호출을 사용하여 디스패치 대기열 사용
그것에 대한 의사 같은 것입니다 :
func Foo(completion:()->()) {
let dispatchGroup = DispatchGroup()
for doc in documents {
dispatchGroup.enter()
ref.getDocument(completion: { (snapshot, error) in
//Need another getDocument call here
let Object = Object(init with snapshot data)
dispatchGroup.leave()
}
}
} completion()
는 내가 뭘해야 내가 코멘트를 추가 한 다른 비동기 호출을 추가합니다. 같은 코드를 살펴 만들 것
:
ref.getDocument(completion: { (snapshot, error) in
userCountRef.getDocuments(completion: { (snap, error) in
let Object = Object(init with snapshot data)
dispatchGroup.leave()
}
} completion()
코드의 두 번째 세트의 문제는 첫 번째 루프 내의를 통과 한 후 내 완료 핸들러가 호출되는 것입니다.
기본적으로 디스패치 그룹과 함께 두 세트의 비동기 호출을 처리 할 수 있습니다. 첫 번째 호출이 필요하고 첫 번째 호출이 필요한 정보를 사용하여 두 번째 호출을 작성한 다음 클래스의 객체를 만들고 루프를 완전히 반복하여 반복 한 다음 매우 끝내 내 완성.
어떻게 수행 할 수 있습니까? 두 번째 비동기 호출이 처음에 따라 다르지만 다른 첫 번째 데이터가 ref
내의 다른 개체에서 호출하지 않는 경우
나는 이것을 정확하게하기 위해 노력하고 있었다. 그리고 단지 나의 브래킷이 축 늘어져 라. .. 도와 줘서 고마워, 고마워. – Noowoo