['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]]
जब आप एक ऑब्जर्वेबल होते हैं तो आप फ्लैटपाइप का उपयोग करते हैं जिसके परिणाम अधिक ऑब्जर्वेबल होते हैं।
यदि आपके पास एक ऑब्जर्वेबल है, जो एक अन्य ऑब्जर्वेबल द्वारा निर्मित है, तो आप इसे फ़िल्टर नहीं कर सकते, कम कर सकते हैं, या सीधे मैप कर सकते हैं क्योंकि आपके पास ऑब्जर्वेबल है डेटा नहीं। यदि आप नक्शे पर एक अवलोकन विकल्प का चयन करते हैं; तब आप ठीक हैं।
दूसरे स्निपेट की तरह, यदि आप एसिंक्स ऑपरेशन कर रहे हैं तो आपको फ्लैटपाइप का उपयोग करने की आवश्यकता है।
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>