['a','b','c'].flatMap(function(e) { return [e, e+ 'x', e+ 'y', e+ 'z' ];});//['a', 'ax', 'ay', 'az', 'b', 'bx', 'by', 'bz', 'c', 'cx', 'cy', 'cz']['a','b','c'].map(function(e) { return [e, e+ 'x', e+ 'y', e+ 'z' ];});//[Array[4], Array[4], Array[4]]当您有一个Observable的结果是更多Observable时,可以使用flatMap。
如果您有一个由另一个可观察对象产生的可观察对象,则您不能直接过滤,缩小或映射它,因为您有一个可观察对象而不是数据。如果您生成一个可观察的图像,则在地图上选择flatMap;那你还好
与第二个代码段一样,如果要进行异步操作,则需要使用flatMap。
var source = Rx.Observable.interval(100).take(10).map(function(num){ return num+1});source.subscribe(function(e){ console.log(e)})<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.4.1/Rx.min.js"></script>
var source = Rx.Observable.interval(100).take(10).flatMap(function(num){ return Rx.Observable.timer(100).map(() => num)});source.subscribe(function(e){ console.log(e)})<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.4.1/Rx.min.js"></script>



