RxJs-我可以使用BehaviorSubject创建计时器吗?

时间:2019-05-28 18:47:52

标签: rxjs behaviorsubject

我创建了一个可以按可观察的间隔停止和重新启动的时间加载器:

   start(time) {

    this.max = time;
    this.intervalObs = Observable.interval(time)
      .takeWhile(_ => !this.isFinished)
      .do(i =>{this.current += 1 ; console.log(this.current);} )
     this.intervalSub$ = this.intervalObs.subscribe();
  }

  finish() {
    this.intervalSub$.unsubscribe();
  }

,我想使用行为主题做完全相同的事情。有可能吗?如何?

2 个答案:

答案 0 :(得分:0)

您做错了什么。 Subject分别是ObserverObservable。在您的示例中,至少按照我的理解,您正在使用..间隔,这意味着.interval()实现就足够了。

所以问题是-您要达到什么目标?

答案 1 :(得分:0)

如果您有一个名为finalize的主题,则可以完成该可观察性

data: any = {
    '1234': {
        url: 'https://example1.com/',
        path: 'uploads',
        link: 'https://example1.com/uploads',
    },
    '5678': {
        url: 'https://example2.com/',
        path: 'uploads',
        link: 'https://example2.com/uploads',
    }
}


onSubmit(formData) {

    this.formdata = formData;

    Object.keys(this.data).forEach(key => {
        if (key == this.formdata.pin) {
            const url = this.data[key].url;
            // have also tried this.url to no avail
        }
    });

    // says undefined
    console.log(url);

    // set up headers, etc...

    // I need to use here
    this.http.post(url, body, head)
    ...
}