RxJS v6.5 में नया क्या है


इस पोस्ट में हम RxJS 6.5.0 के नवीनतम संस्करण की नई विशेषताओं और सुधारों के बारे में बात करेंगे।


नए नए बयान से


RxJS अब देशी भ्रूण एपीआई के लिए देशी समर्थन प्रदान करता है, जिसमें AbortController का उपयोग करके अनुरोधों को बाधित करने की क्षमता भी शामिल है।


import { of } from 'rxjs'; import { switchMap, catchError } from 'rxjs/operators'; import { fromFetch } from 'rxjs/fetch'; const users$ = fromFetch('https://reqres.in/api/users').pipe( switchMap(response => { if (response.ok) { return response.json(); } else { return of({ error: true, message: `Error ${response.status}` }); } }), catchError((error) => of({ error: true, message: error.message })) ); users$.subscribe({ next(data) { ... }, complete() { ... } }); 

वर्धित forkJoin स्टेटमेंट


मुझे यह सबसे ज्यादा पसंद आया। ForkJoin स्टेटमेंट अब एक सोर्स डिक्शनरी को स्वीकार करता है:


 import { forkJoin, timer } from 'rxjs'; import { take, mapTo } from 'rxjs/operators'; const source = forkJoin({ todos: timer(500).pipe(mapTo([{ title: 'RxJS'}])), user: timer(500).pipe(mapTo({ id: 1 })) }); source.subscribe({ next({ todos, user }) { } }); 

इसके अलावा, इस ऑपरेटर का उपयोग forkJoin(a, b, c, d) जाता है, इसके बजाय, forkJoin([a, b, c, d]) लिखा जाना चाहिए।


 // DEPRECATED forkJoin(of(1), of(2)).subscribe(); // use an array instead forkJoin([of(1), of(2)]).subscribe(); 

विभाजन अवलोकनीय


मौजूदा partition विवरण अब पदावनत हो गया है, और एक नया सामान्य अवलोकन partition विवरण partition
विभाजन स्रोत वस्तु को दो प्रकार की वेधशाला में विभाजित करता है, एक मान के लिए जो दिए गए विधेय को संतुष्ट करता है, और दूसरा उन मूल्यों के लिए जो नहीं करते हैं।


 import { fromEvent, partition } from 'rxjs'; const clicks$ = fromEvent(document, 'click'); const [clicksOnH1$, clicksElsewhere$] = partition(clicks$, event => event.target.tagName === 'H1'); clicksOnH1$.subscribe({ next() { console.log('clicked on h1') } }); clicksElsewhere$ .subscribe({ next() { console.log('Other clicked') } }); 

संयुक्त स्थिति को हटाए गए स्थिति में स्थानांतरित कर दिया गया


नया संस्करण अब combineLatest([a, b, c]) के अपवाद के साथ combineLatest हस्ताक्षरों का उपयोग नहीं करता है। इस परिवर्तन के कारणों को यहां पढ़ें।


योजनाकारों


मौजूदा अवलोकन के लिए अनुसूचक को कॉन्फ़िगर करने के लिए scheduled कथन का उपयोग करें। नियोजित (वे जो अनुसूचक को एक पैरामीटर के रूप में लेते हैं), range और अन्य कथनों के संस्करणों को पदावनत किया जाता है।


 import { of, scheduled, asapScheduler } from 'rxjs'; console.log(1); // DEPRECATED // of(2, asapScheduler).subscribe({ // next(value) { // console.log(value); // } // }); scheduled(of(2), asapScheduler).subscribe({ next(value) { console.log(value); } }); console.log(3) 

Source: https://habr.com/ru/post/hi450718/


All Articles