# Rxjs操作符
# mergeMap和concatMap的区别
mergeMap和concatMap都可以拍平Observable, 但是区别是, mergeMap对于输入的observable是立即进行合并个拍平操作, 但是concatMap必须要等上一个observable完结才会进行合并和拍平操作
// concatMap: 对于输入的每一个id, 都必须等上一个id调用完item/${id}接口后, 才会执行下一个
getItems(ids: number[]): Observable<Item> {
return from(ids).pipe(
concatMap(id => <Observable<Item>> this.httpClient.get(`item/${id}`))
);
}
// mergeMap: 只要有id输入进来, 都会立即调用item/${id}接口, 不管前一个传入的id调用接口是否完成
getItems(ids: number[]): Observable<Item> {
return from(ids).pipe(
mergeMap(id => <Observable<Item>> this.httpClient.get(`item/${id}`))
);
}