我對RxJs比較新,在處理使用switchMap運算符發出的多個項目後無法鏈接單個操作。在處理多個項目後在RxJS中運行單個操作
場景:使用後端數據爲下拉列表生成對象數組,然後鏈接單個操作以設置下拉列表的選定值。
下面是有助於說明問題的非工作代碼。
this.sub = this.dataService.getUserData()
.switchMap((data) => Observable.from(data)) // create new data stream from inner data set
.map((data: any) => {
return { value: data._id, viewValue: data.firstName + ' ' + data.lastName };
}) // create data structure for drop down
.subscribe((data) => {
this.userDropDown.push(data); // this operation needs to run once per item emitted, and is working
this.patchFormData(); // <-- However, this only needs to run once
},
(error) => console.log("error", error)
);
我已經試過了變形的問題,但我無法來解決這個問題,即一個)的整體獲取新的對象基於陣列的斷源數據和b)完成後運行一個操作各個運營商。
任何幫助極大的讚賞。
謝謝
- S.阿羅拉
- 更新:工作最終版本在此基礎上回答以下有輕微的語法修復:
this.sub = this.dataService.getUserData()
.map((data: any[]) => {
return data.map((x: any) => {
return { value: x._id, viewValue: x.firstName + ' ' + x.lastName };
});
})
.subscribe((data: any) => {
this.userDropDown = data;
this.patchFormData();
},
(error) => console.log("error", error)
);
是'this.dataService.getUserData()'返回一個數組? – CozyAzure