2016-10-13 1 views
0

내 앱이 시작될 때 일부 데이터를 비동기 적으로로드하고 나중에 앱 흐름에 표시되는보기 컨트롤러에서로드 된 데이터를 사용하고 싶습니다.약속을 기다릴 때까지 기다림

데이터가로드되었는지 어떻게 확인할 수 있습니까? 데이터가로드되지 않은 경우 어떻게로드 될 때까지 기다릴 수 있습니까?

그래서 AppDelegate에서 코드가 ... _ = service.LoadData()이고 약속을 반환합니다. 약속이 반환되었는지 여부는보기 컨트롤러가 어떻게 알 수 있습니까?

약속이 이미 반환 된 경우 새로운 .then 전화를 약속의 끝에 추가하면 분명히 작동하지 않습니다.

+0

우리는'completionHandlers' 즉'클로저 '를 만들 수 없습니다. –

+0

예,하지만 작업이 완료되었는지는 알 수 없습니다. 완료되면 완료 종료가 호출되지 않습니다. –

+0

당신의'ViewController'가 알 수있는 유일한 방법은'ViewController'에 옵저버를 추가하고 약속이 반환 되 자마자 알림을 발생시키는 것입니다. NSNotificationCenter'를 사용하십시오. –

답변

0

해결 된 약속으로 .then을 호출하면 즉시 폐쇄가 발생하는 것으로 보입니다. 그래서 초기 쿼리에서 약속을 저장하고 언제든지 새로운 .then을 추가합니다. 데이터가로드되면 즉시 반환되고, 그렇지 않으면 잘만되면 기다릴 것입니다.