空闲时间过后,角度可观察对象不会调用

时间:2018-10-13 07:14:43

标签: angular typescript rxjs observable angular6

要创建observable,我创建了一个类,该类使对象和类的next()保持可观察状态,只要有分配,就这样。

class myObsClass{
private sub;
public obj;
public obj$;

constructor(){
    this.sub = new Subject<any>();
    this.obj = new Object();
    this.obj$ = this.sub.asObservable();
   }

set object (value){
     this.obj = val;
     this.sub.next(this.obj);
    }
}

我正在服务中创建其实例,如下所示。

public myObs = new myObsClass();

在组件中,我订阅的是这样的

this.service.myObs.obj$.subscribe(data => {
// something to do with function
});

这很好用。问题是,在闲置10或20分钟后,它根本不调用订阅。

这里可能是什么问题?这种方法好吗?

编写的代码仅用于提供清晰度,如果您粘贴粘贴,则可能无法正常工作。

1 个答案:

答案 0 :(得分:0)

您似乎失去了myObsClass的实际参考。

这里可以帮助您的是-

  1. 使用@Inject装饰器将您的课程myObsClass转换为服务课程
  2. 添加到providers的{​​{1}}列表中。它将为可以在多个组件和服务中引用的服务创建单例。它将维护所有组件之间的引用。
  3. 随时随地注入此服务。

注意:在非常普通的模块中添加此服务类。如果不确定,则添加到module