Angular 角度9-不再支持resultSelector
使用zip时,Angular 角度9-不再支持resultSelector,angular,rxjs,ngrx,Angular,Rxjs,Ngrx,使用zip时,resultSelector不再受支持,但我不确定如何根据ngrx 7重构它 this.update.pipe(debounceTime(600), distinctUntilChanged(), switchMap(data => { const { gri, index } = data; const reqGri = Object.assign({}, gri); delete reqGri.id; return zip(
resultSelector不再受支持,但我不确定如何根据ngrx 7重构它
this.update.pipe(debounceTime(600),
distinctUntilChanged(),
switchMap(data => {
const { gri, index } = data;
const reqGri = Object.assign({}, gri);
delete reqGri.id;
return zip(
this.dataManager.putGris(gri.id, reqGri),
of(index), resGri => {
return { resGri: resGri[0], index: resGri[1] };
});
})).subscribe((data) => {
this.data[data.index] = data.resGri;
this.dataChange.next([...this.data]);
});
这种重构应该是相同的,但是现在您使用的是没有resultSelector的zip。您所要做的就是通过地图格式化zip
的结果
this.update.pipe(debounceTime(600),
distinctUntilChanged(),
switchMap(data => {
const { gri, index } = data;
const reqGri = Object.assign({}, gri);
delete reqGri.id;
return zip(
this.dataManager.putGris(gri.id, reqGri),
of(index)
).pipe(
map(resGri => ({ resGri: resGri[0], index: resGri[1]}))
);
})
).subscribe(data => {
this.data[data.index] = data.resGri;
this.dataChange.next([...this.data]);
});
或者通过分解使其更干净
map(resGri => ({ resGri: resGri[0], index: resGri[1]}))
// can be changed to
map(([resGri, index]) => ({ resGri, index}))