2016-10-13 20 views
0

私のアプリが起動するときに非同期的にデータをロードし、後でアプリケーションのフローに表示されるビューコントローラからロードしたデータを使用したいとします。約束が返るのを待つ

データがロードされているかどうかを確認する方法と、ロードされていない場合、データがロードされるまでどのように待つのですか?

したがって、AppDelegateのコードが... _ = service.LoadData()であり、約束を返します。約束が返されたかどうかは、表示コントローラがどのように知るのですか?

約束がすでに返っていれば、約束の終わりに新しい.thenコールを追加することは、確かにうまくいかないでしょう。

+0

私は 'completionHandlers'すなわち' closures'を作成できません –

+0

はい、タスクは完了したかどうかわかりません。完了した場合、完了クロージャは呼び出されません。 –

+0

あなたの 'ViewController'に知ってもらう唯一の方法は、あなたの' ViewController'にオブザーバを追加し、約束が返ってくるとすぐに通知を出すことです。 NSNotificationCenter'を使用してください。 –

答えて

0

解決済みの約束で.thenを呼び出すと、すぐにクロージャが呼び出されるように見えます。だから私は最初のクエリからの約束を保存し、いつでもそれに新しい.thenを追加します。データがロードされている場合は、すぐにそのデータが返されます。それ以外の場合は、待機します。

関連する問題