我在下面有這段代碼,我同時(shí)完成和添加,并且當(dāng)我調(diào)用控制器時(shí),我一直使用添加作為停止加載旋轉(zhuǎn)器的方法,因?yàn)檫@似乎是停止加載旋轉(zhuǎn)器的正確方法(如果存在)從控制器獲取的調(diào)用存在一些問(wèn)題,因?yàn)榭偸钦{(diào)用 Add()。
但是我想知道complete的用途是什么,以及我是否應(yīng)該使用它而不是add來(lái)阻止我的旋轉(zhuǎn)器在客戶(hù)端旋轉(zhuǎn)?添加和完成有什么區(qū)別?
this.loadingSpinner = true; this.membersService.getMemberProfile().subscribe({ next: (v) => { // load profile into form }, error: (e) => { console.error(e); }, complete: () => { this.loadingSpinner = false; } }).add(() => { this.loadingSpinner = false; });
Observable.subscribe 返回一個(gè) Subscription 對(duì)象,并且 Subscription.add 是一種告訴訂閱在取消訂閱時(shí)執(zhí)行某些操作的方法。
Observer.complete 在可觀察對(duì)象被調(diào)用時(shí)被調(diào)用收聽(tīng)成功完成。
因此,對(duì)于您的代碼,.add()
效果更好,因?yàn)闊o(wú)論出現(xiàn)錯(cuò)誤還是成功完成,都會(huì)調(diào)用它。