簡體   English   中英

使用 takeUntil 后出現 ObjectUnsubscribedError

[英]ObjectUnsubscribedError after using takeUntil

因此,當我將不同的項目加載到屏幕時,會發生一堆 http 請求。 這是基本布局

ngUnsubscribe: any = new Subject();

constructor(private service: Service){}

ngOnInit() {}

BuildView(data) {this.submitLayerservice.submitLayer(onLoadSubmitLayerFormat)
        .pipe(takeUntil(this.ngUnsubscribe))
        .subscribe( //logic happens here 
)
}

ngOnDestroy() {
this.ngUnsubscribe.next();
this.ngUnsubscribe.unsubscribe();
}

一切正常,當組件被銷毀時,我看到所有請求都被取消。 但是當我再次加載項目時,我收到此錯誤並且沒有任何顯示。 我猜這是因為 ngUnsubscribe 已經發生了? 不太確定。 大部分問題都與 Map 相關。

編輯:如果我不添加 this.ngUnsubscribe.unsubscribe(); 問題似乎已解決。 我不應該取消訂閱這個主題嗎?

對於任何尋找這個的人來說,很可能是因為在您輸入組件時不會再次創建訂閱,所以添加 ngWillEnter 或 ngDidEnter

ngUnsubscribe = 新主題();

確保您在進入視圖時已創建訂閱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM