1. 程式人生 > >RxJS非同步通訊之map、flatMap

RxJS非同步通訊之map、flatMap

let source1: string = Observable.range(1,4).map((item) => {

return item;

});

source1.subscribe((itam) => {

console.log('return value: ' + item);

});

return value:1

return value:2

return value:3

return value:4

let source2: string = Observable.range(1,4).flatMap((item) => {

return Observable.of(item);

});

source2.subscribe((itam) => {

console.log('return value: ' + item);

});

return value:1

return value:2

return value:3

return value:4

在RxJS中map和flatMap都可以對單個物件進行操作,最主要的區別在於返回的資料型別,map的返回就是原本的資料型別即可,而flatMap返回的是一個流資料,即要在資料返回是增加Observable的轉換。

這裡的return的單粒的,如果想直接返回一個數組,直接使用toArray()方法即可。

let source2: string = Observable.range(1,4).flatMap((item) => {

return Observable.of(item);

}).toArray();

source2.subscribe((itam) => {

console.log('return value: ' + item);

});

return value:[1,2,3,4]