现在有以下场景,在Component中有2个属性,代码如下:
// 在OnInit事件中获取服务端的数据
yearList: Observable<string[]>;
// 默认值为0,当从服务端得到yearList之后从yearList中获取第0个并赋值给year
year: BehaviorSubject<string> = new BehaviorSubject('0');
ngOnInit() {
this.yearList = this.service.getYearList()
.withLatestFrom(this.year)
.map(([yearList, year]) => {
if (year === '0' && yearList.length > 0) {
this.year.next(yearList[0]);
}
return yearList;
});
}
上面代码的意思是:
在组件OnInit事件中获取yearList数据,它的结果是一个字符串数组,然后从这个数组里面获取第0个并赋值给year。 其中赋值的过程我是使用的是操作符map方法,最后在这个方法中再把yearList给return出去。
虽然运行中没有什么问题,总觉着这不是一个很好的方法,在我理解来看,map方法应该是用来将yearList转换为其他数据的一种操作行为,类似Array.map方法。
我想问的是,像这种赋值的场景有什么其他的好方法吗?