在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  網(wǎng)絡(luò)安全/ Rxjs在angular中的賦值應(yīng)用場景。

Rxjs在angular中的賦值應(yīng)用場景。

現(xiàn)在有以下場景,在Component中有2個屬性,代碼如下:

// 在OnInit事件中獲取服務(wù)端的數(shù)據(jù)
yearList: Observable<string[]>; 

// 默認(rèn)值為0,當(dāng)從服務(wù)端得到y(tǒng)earList之后從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數(shù)據(jù),它的結(jié)果是一個字符串?dāng)?shù)組,然后從這個數(shù)組里面獲取第0個并賦值給year。 其中賦值的過程我是使用的是操作符map方法,最后在這個方法中再把yearList給return出去。

雖然運(yùn)行中沒有什么問題,總覺著這不是一個很好的方法,在我理解來看,map方法應(yīng)該是用來將yearList轉(zhuǎn)換為其他數(shù)據(jù)的一種操作行為,類似Array.map方法。

我想問的是,像這種賦值的場景有什么其他的好方法嗎?

回答
編輯回答
殘淚
    this.yearList = this.service.getYearList()
        .do(yearList => {
            if (this.year.value === '0' && yearList.length > 0) {
                this.year.next(yearList[0]);
            }
        })
2017年3月12日 21:40