Jon*_*eal 4 javascript arrays rxjs ionic2 angular
我有一个类型功能的服务
getSummary(id: string, universe: string): Observable<INTsummary[]>
当我调用它时我只想要第一项INTsummary[],所以我试图使用rxjs first运算符来做到这一点:
  loadQuickSummary(){
    var obj = this.myService.getSummary(this.user.id, this.user.universe).first();
    console.log("getting quick summary");
    obj.subscribe(r => {
      console.log(`first value ${JSON.stringify(r)}`)
    })
  }
Run Code Online (Sandbox Code Playgroud)
从阅读文档和stackoverflow,这应该返回一个对象,但我得到了一个数组INTsummary.
我怎样才能回到INTsummary[]数组中的第一个对象?
该first()可观察返回第一个发射.因此,当您拥有像那样发出数组的源时,INTsummary[]它会发出它发出的第一个数组(而不是数组中的第一个数组).
根据您的描述,您希望获得数组中的第一项,因此有两种方法:
this.myService.getSummary(this.user.id, this.user.universe)
  .map(array => array[0])
Run Code Online (Sandbox Code Playgroud)
...或者如果你真的想使用first()运营商:
this.myService.getSummary(this.user.id, this.user.universe)
  .concatAll() // flatten the array into separate emission
  .first()
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           810 次  |  
        
|   最近记录:  |