在可观察订阅的开头和结尾显示和隐藏加载

时间:2017-03-29 01:47:52

标签: javascript angular reactjs rxjs angular2-observables

我想在可观察订阅的开头和结尾显示和隐藏加载,但没有成功。我认为这与forkJoinswitchMap有关。以下是我的尝试:

this.query
  .debounceTime(400)
  .distinctUntilChanged()
  .switchMap((query) => {
    // code...
    return Observable.forkJoin(sources);
  })
  .finally(() => console.log('completed')) // never called
  .subscribe((hashtags) => {
    // code...
  }, (error) => {
    console.log(error);
  }, () => {
    console.log('completed'); // never called
  });

1 个答案:

答案 0 :(得分:0)

forkJoin的一个非常常见的问题是它的所有源Observable都需要发出至少一个值并在forkJoin发出任何内容之前完成。

很难说你在switchMap()内做了什么以及this.query是什么,但complete信号和finally()运营商都是仅在Observable链完成时调用。因此,如果您正在接收next回调中的项目(即(hashtags) => { // code... }功能),并且您知道永远不会打印completed字符串,那么它似乎就是源代码永远不会完成,因此调用finally()或完整的回调。