gpt4 book ai didi

angular - 更改 Angular2 异步管道的订阅

转载 作者:行者123 更新时间:2023-12-02 20:56:56 27 4
gpt4 key购买 nike

我有一个例子,我在 angular2 组件中使用异步管道并向其传递一个可观察值。效果很好。

我想要的是稍后,当组件仍然“事件”时,即:尚未调用 OnDestroy(因此订阅了异步管道),取消订阅该可观察对象并订阅另一个。

我怎样才能实现这个目标?

这里有一些伪代码来揭露这种情况:

@Component({
selector: 'pack',
template: `
<wolf *ngFor="let wolf of pack | async">
...
</wolf>
`
})
export class PackComponent implements DoCheck {

pack;

constructor(){
this.pack = Observable.of(northwesthernWolves: Wolf[])
}

onDoCheck() {
if(some condition) {
this.pack = Observable.of(redWolves: Wolf[])
}
}
}

最佳答案

考虑到该框架已经发布,可以肯定地认为它已经解决了这个问题。实际上,it is so :

...
if (obj !== this._obj) {
this._dispose();
return this.transform(obj);
}
...

当新的 observable 被分配给类属性时,旧的 observable 会被 async 管道自动取消订阅。

相反的行为会导致内存泄漏,并可能被视为错误。

关于angular - 更改 Angular2 异步管道的订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com