iT邦幫忙

0

angular ngOnInit() 非同步處理問題

Zaku 2018-03-09 12:22:494054 瀏覽

各位好,
angular的component內可用ngOnInit() {}讓網頁再載入前先載入必須要的數據,但如果是非同步傳輸下載資料時ngOnInit() {}不會等他,因為不是router好像無法設callback,雖然頁面好像會正常顯示,但console.log()還是會抱錯,應該是時間差,先讀到變數了發現沒有這個變數就抱錯,資料後續上來了,頁面還是能接收變數,順利顯示上去。請問有什麼方法可以解嗎?

Rach iT邦新手 5 級 ‧ 2018-04-07 16:15:40 檢舉
你希望變成同步的嗎?還是在載入結束才`callback`?放在`ngOninit`有點怪怪的,不如寫個promise queue去做同步的活
比較想知道你大概是什麼寫法,我自已也是用非同步,一樣會遇到時間差,但
console也沒有顯示什麼錯誤過。
Zaku iT邦新手 4 級 ‧ 2018-10-23 15:07:16 檢舉
感謝兩位大大。
TO Rach :promise queue? promise本身就是非同步,ngOninit沒有辦法等他callback吧?
TO aa71435723: 已經改寫法了,因為它資料還沒跑出來業面已經要參數,但之後跑完送上來後就work了,但當下沒資料會報錯。所以大大都直接跑非同步在ngOninit內?沒什麼忌諱?這樣資料量大的時候版面會出問題吧。

不過想想我現在好像也都是非同步在傳,只是有透過RXJS,都沒有再報錯了orz

尚未有邦友回答

立即登入回答