逢甲大學

#Angular 使用async/await方法卻無法成功問題

7月30日 21:32
大家好,這邊想請問如何使用async/await來處理非同步事件。目前使用angular進行程式撰寫,有先上網看一些教學和使用範例,只是試著套用在專案裡時卻無法成功,希望能請大家幫我看看是不是哪裡寫錯或是哪邊寫法可以改進,謝謝各位的幫忙🙏 理想的流程: 按下儲存按鈕時觸發 saveEdit function,等前端put資料給後段並得到回傳status 200後才執行關掉編輯的dialog視窗,把視窗關掉後才能抓取新資料刷新頁面。 saveEdit function
imgur
放在modelService的function ,把資料put到後段後使用subscribe監聽結果並回傳
imgur
關掉編輯dialog視窗後需執行getModelAPI 來種新抓取資料刷新頁面
imgur
目前的寫法好像都無法等到回傳結果是200時才執行之後的程式碼。這邊確定資料都可成功傳給後端,但都需要手動刷新頁面才能拿到新資料。
2
留言 9
文章資訊
共 9 則留言
被await的 必須是promise 物件 所以妳需要修改puModelSelectionAPI
逢甲大學
滿滿的this看起來好醜 離題了 重點還是要有promise啦 有promise 一切好說
有夠抽象,這段超難 每次自己寫都會卡住 都要看別人的qq 跳modal作法大概長這樣
你好,Angular 我建議用 RxJS 來處理非同步事件,在 putModelSelectionAPI 回傳 put 方法產生的 Observable,並在需要處理後端回傳資料的地方去 subscribe 它。 基本上用 Angular 都會學 RxJS 這套,比較少用 Promise、async/await,一來是 RxJS 在非同步處理以及串流事件較為出色,二來是 Angular 多數非同步處理都是用 RxJS,我非常推薦!
可以用rxjs處理最好,不然可以把put的Observable轉成promise回傳也行
原 PO - 逢甲大學
謝謝各位的回答與建議! 目前先考慮使用RxJS來寫看看,其實我 以前應該有稍微學過但沒實際應用過幾次不太熟悉。
國立政治大學 資訊管理學系
在Angular還是建議使用RxJS處理非同步 可以先了解觀察者模式再入手RxJS