适当可观察的管理



我正在使用Ionic 3/Angular应用程序。我在企业项目的Data Store Abstract Class中遇到了一些代码。商店中的refresh函数创建了const cachedObs.,我对可观察到的不熟悉并不熟悉,我的问题是,如果刷新函数被称为多次,是否在后台创建多个可观察到的功能,而不是重复使用一个可观察的函数?此代码的开发人员也不确定。我们尚未遇到任何性能问题,但我想确保此代码不会泄漏。

这些可观察物在更新应用程序中的关键数据时不会取消订阅。对此的任何帮助将不胜感激。

public refresh(): Observable<T> {
    const cachedObs = Observable.fromPromise(this._storage.get(this._key).catch(() => this._initialState));
    cachedObs.subscribe(data => this.set(data ? JSON.parse(data) as T : this._initialState));
    return cachedObs;
};

因此,您肯定每次都创建一个新的可观察到的,而不是重复使用相同的流。从好的方面来说,在这种情况下,这并不是一个问题。如果可观察到的完成,则它会自动取消订阅所有订阅。

来自Promise是一种可观察到的创建机制,它只会散发出一个完整的价值。因此无需退订。

您可以在subscribe()方法中证明这一点。它有3个护度,第一个是成功,然后是失败,然后是完整的。因此,您可以执行.subscribe(null,null,()=> console.log(" plotese"))。如果您看到完整的大火,您知道您不必担心泄漏!

最新更新