Obj [] Vs. Observable Angular 2/4
问题描述:
这可能是一个问题,答案太明显了,但我没有找到一个好的答案。Obj [] Vs. Observable <Obj[]> Angular 2/4
说我使用* ngFor绑定数据的对象数组类型为'Obj'(Obj[]
Vs. Observable<Obj[]>
)。
的区别是什么/在下列情况下的优点:
- 当的OBJ列表会返回一个HTTP响应和频繁更新的
- 当的OBJ列表会返回一个HTTP响应,并正在更新一次
- 当二级阵列(不通过HTTP填充),而是由另一阵列
是什么在角以及为什么推荐的方式更新?
代码:
//declaration
private contests: Observable<Contest[]>;
private dayPlanCandidates: Observable<Contest[]>;
//populate
let response = this.contestService.search(this.query, page, size, sort);
this.contests = response.map(p => p.content);
//http call
return this.http.get(targetUrl, { params: params })
.share()
.map(res => res.json())
.map(pageObj => Page.build(pageObj, Contest.from));
<!-- binding-->
<div *ngFor="let contest of contests | async"> </div>
<div *ngFor="let contest of dayPlanCandidate"> </div>
正如你可以在代码中看到,有2个可观测阵列。
竞赛阵列被直接从HTTP响应
dayPlanCandidates阵列取决于比赛更新。
我的问题: 如果我应该保持两个阵列作为观测或 如果我要保持比赛[]作为可观察到的,并设置dayPlanCandidates只是一个竞赛阵列?
答
Observable
是一个“简单”的对象,它表现为一个包装异步数据的包装,或者“将在晚些时候出现的数据”。这是RxJS
库的一部分(或者一般而言,RX
,代表反应扩展名)。此第三方库已集成到Angular中,并且是一个“通用”对象,它允许您很好地操作异步值(一旦获得了) - 为了公平起见,我建立了一个完整的角度项目而不用担心Observables
(和类型)
最好使用异步管道Observables
,因为Angular是设计用来很好地消费这些物品(为您节省了很多样板代码)
问题应该显示代码,您尝试过什么,您期望什么,出了什么问题 –
对不起,如果我不清楚。没有出错,我只想知道,在数组和可观察数组之外,推荐的方式和原因。 – Maddy
StackOverflow不适合推荐,因为没有一个正确的答案。对于开放式问题,您可以尝试https://softwareengineering.stackexchange.com/再次,如果您添加一些代码并解释您的具体问题,我们可以提供帮助;开放式问题太广泛。 –