0
我想在應用程序啓動時異步加載一些數據,並使用稍後在應用程序流中呈現的視圖控制器中加載的數據。等待承諾退還
如何確定數據是否已加載,如果尚未加載,如何等待加載?
所以,如果在AppDelegate中的代碼是... _ = service.LoadData()
,這將返回一個承諾,視圖控制器如何知道承諾是否已經返回?
將新的.then
調用添加到承諾的結尾肯定不會工作,如果承諾已經返回。
我想在應用程序啓動時異步加載一些數據,並使用稍後在應用程序流中呈現的視圖控制器中加載的數據。等待承諾退還
如何確定數據是否已加載,如果尚未加載,如何等待加載?
所以,如果在AppDelegate中的代碼是... _ = service.LoadData()
,這將返回一個承諾,視圖控制器如何知道承諾是否已經返回?
將新的.then
調用添加到承諾的結尾肯定不會工作,如果承諾已經返回。
根據已解決的承諾調用.then
似乎會導致立即調用閉包。因此,我只是將初始查詢的承諾存儲起來,然後每當添加一個新的.then
時。如果數據被加載,它立即返回,否則,希望它會等待。
我們不能創建'completionHandlers',即'closures' –
是的,但是你不知道任務是否完成。如果它完成了,那麼完成關閉將不會被調用。 –
我認爲讓你的ViewController知道的唯一方法就是在你的ViewController中添加一個觀察者,並在promise返回時立即觸發一個通知。使用'NSNotificationCenter' –