• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

订阅在当时发出一个项目而不是在Rxjs中的列表

angular 来源:LucaV 3次浏览

我目前正在努力弄清楚Angular 4应用程序中Rxjs的行为。订阅在当时发出一个项目而不是在Rxjs中的列表

我的代码是:

this.server.get("incidents") //http get resource 
.flatMap((res) => res.value) //the incident array is in a property called value of the json returned 
.map((incident) => new Incident(incident)) // conversion from json to typed class 
.subscribe(i => {this.ng2TableData.push(i);}) //subscribe 

在最后一行,我希望订阅方法立刻提供给我的整个列表,而不是它似乎obsevable被返回的时候一个Incident和订阅功能称为N次,因此迫使我采用push方法,而不是一次构建ng2TableData

我该如何订阅整个列表,而不是当时的一个项目?


===========解决方案如下:

flatMap将使您的数组变为可观察的值流。你只想使用map。您可以再次使用map,使每个对象数组中为你的类的实例,像这样:

<code class="prettyprint-override">this.server.get("incidents") 
    .map(res => res.value.map(incident => new Incident(incident))) 
    .subscribe(data => console.log(data)) // data is an array! 
</code>

现在你得到你的阵列里,而不是订阅。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)