组合 RxJs 可观察数组



我正在尝试在列出联系人的Ionic2 + Meteor移动应用程序中进行无限滚动。在下面的代码中,findContacts() 函数一次返回 10 个联系人。 联系人:可观察;

  findContacts() :Observable<Contact[]> {
    /* logic to pull Contacts is here ...*/
  }
  this.contactsSub =  MeteorObservable.subscribe('contacts', options).subscribe(() => {
      MeteorObservable.autorun().subscribe(() => {
        if(!this.contacts) {
          this.contacts = this.findContacts();
        }
      });
  });

每次用户滚动到列表末尾并获取接下来的 10 个联系人时,都会调用此代码。但这里的宣传是,它没有附加到已经列出的联系人。它只显示新拉的 10 个联系人。我尝试了Observable.concat,但它没有给出错误的结果。当我尝试 mergeMap 时,它会循环并出错。你能告诉我如何连接可观察数组对象吗?任何帮助将不胜感激。我已经在这个问题上坚持了一个多星期了。谢谢。

您可以通过将联系人更改为数组来实现此目的

contacts: Array<any>= []
findContacts() :Observable<Contact[]> {
    /* logic to pull Contacts is here ...*/
  }
  this.contactsSub =  MeteorObservable.subscribe('contacts', options).subscribe(() => {
      MeteorObservable.autorun().subscribe(() => {
          this.findContacts().subscribe(data => {
                this.contacts = this.contacts.concat(data);
        });
      });
  });

相关内容

  • 没有找到相关文章

最新更新