logo

РкЈС Обсерваблес

У РкЈС-у, опсервабле је функција која се користи за креирање посматрача и причвршћивање на извор одакле се очекују вредности. На пример, кликови, догађаји миша из ДОМ елемента или Хттп захтева, итд. су примери посматрања.

Другим речима, можете рећи да је посматрач објекат са функцијама повратног позива, који се позива када постоји интеракција са Обсервабле-ом. На пример, извор је ступио у интеракцију за пример, клик на дугме, Хттп захтев итд.

Обсерваблес се такође могу дефинисати као лење Пусх колекције више вредности. Хајде да видимо једноставан пример да разумемо како се посматрачи користе за гурање вредности.

Погледајте следећи пример:

 import { Observable } from 'rxjs'; const observable = new Observable(subscriber => { subscriber.next(10); subscriber.next(20); subscriber.next(30); setTimeout(() => { subscriber.next(40); subscriber.complete(); }, 1000); }); 

У горњем примеру, постоји посматрач који гура вредности 10, 20, 30 одмах и синхроно када се претплати, али вредност 40 ће бити потиснута након једне секунде пошто је метод претплате позван.

Ако желите да позовете обсервабле и видите горње вредности, морате се претплатити на то. Погледајте следећи пример:

 import { Observable } from 'rxjs'; const observable = new Observable(subscriber => { subscriber.next(10); subscriber.next(20); subscriber.next(30); setTimeout(() => { subscriber.next(40); subscriber.complete(); }, 1000); }); console.log('These are the values just before subscribe'); observable.subscribe({ next(x) { console.log('We have got value ' + x); }, error(err) { console.error('something wrong occurred: ' + err); }, complete() { console.log('Done successfully'); } }); console.log('This value is just after subscribe'); 

Излаз:

Када извршимо горњи програм, добићемо следећи резултат на конзоли:

нпм инсталл команда
РкЈС Обсерваблес

Опсерваблес су генерализације функција

Знамо да су опсервабле функције које делују као кликови, догађаји миша из ДОМ елемента или Хттп захтева, итд. али посматрачи нису као ЕвентЕмитерс, нити су као обећања за више вредности. У неким случајевима, посматрачи могу да се понашају као ЕвентЕмитерс, наиме када се мултицастују користећи РкЈС Субјецтс, али обично се не понашају као ЕвентЕмитерс.

Обсерваблес су као функције са нула аргумената, али их генерализујте да бисте дозволили више вредности.

Хајде да видимо пример да ово јасно разумемо.

Једноставан пример функције:

 function foo() { console.log('Hello World!'); return 123; } const x = foo.call(); // same as foo() console.log(x); const y = foo.call(); // same as foo() console.log(y); 

Излаз:

Видећете следећи излаз:

 'Hello World!' 123 'Hello World!' 123 

Хајде да напишемо исти пример, али са Обсерваблес:

 import { Observable } from 'rxjs'; const foo = new Observable(subscriber => { console.log('Hello World!'); subscriber.next(123); }); foo.subscribe(x => { console.log(x); }); foo.subscribe(y => { console.log(y); }); 

Излаз:

Видећете исти излаз као горе:

РкЈС Обсерваблес

Ово можете видети јер су и функције и Обсерваблес лења израчунавања. Ако не позовете функцију, цонсоле.лог('Хелло Ворлд!') се неће десити. Такође, са Обсерваблес-ом, ако га не 'позовете' са субсцрибе, цонсоле.лог('Хелло Ворлд!') се неће десити.

Рад посматрача

Постоје три фазе у посматрању:

јава регуларни израз $
  • Креирање Обсерваблес-а
  • Претплата на Обсерваблес
  • Извршавање Обсерваблес

Креирање Обсерваблес-а

Постоје два начина да се креирају посматрачи:

  • Користећи метод конструктора Обсервабле
  • Коришћење методе Обсервабле цреате().

Користећи метод конструктора Обсервабле

Хајде да направимо обсервабле користећи метод конструктора обсервабле и додамо поруку, 'Ово је мој први Обсервабле' користећи субсцрибер.нект метод који је доступан унутар Обсервабле-а.

датотека тестрк.јс:

 import { Observable } from 'rxjs'; var observable = new Observable( function subscribe(subscriber) { subscriber.next('This is my first Observable') } ); 

Такође можете креирати Обсервабле користећи метод Обсервабле.цреате() на следећи начин:

 import { Observable } from 'rxjs'; var observer = Observable.create( function subscribe(subscriber) { subscriber.next('This is my first Observable') } ); 

Претплата на Обсерваблес

Претплата на обсервабле је као позивање функције. Обезбеђује повратне позиве на које ће подаци бити испоручени.

Можете се претплатити на обсервабле користећи следећу синтаксу:

Синтакса:

 observable.subscribe(x => console.log(x)); 

Погледајте горњи пример са претплатом:

датотека тестрк.јс:

 import { Observable } from 'rxjs'; var observer = new Observable( function subscribe(subscriber) { subscriber.next('This is my first Observable') } ); observer.subscribe(x => console.log(x)); 

Излаз:

РкЈС Обсерваблес

Извршавање Обсерваблес

Опсервабле се извршава када је претплаћено. Генерално постоје три метода у посматрачу који се обавештавају:

следећи(): Овај метод се користи за слање вредности као што су број, стринг, објекат итд.

пронађи мој иПхоне са андроида

комплетан(): Овај метод не шаље никакву вредност. То указује да је посматрано завршено.

грешка(): Овај метод се користи за обавештавање о грешци ако постоји.

Хајде да видимо пример где смо креирали обсервабле са сва три обавештења и извршили тај пример:

датотека тестрк.јс:

 import { Observable } from 'rxjs'; var observer = new Observable( function subscribe(subscriber) { try { subscriber.next('This is my first Observable'); subscriber.next('Testing Observable'); subscriber.complete(); } catch(e){ subscriber.error(e); } } ); observer.subscribe(x => console.log(x), (e)=>console.log(e), ()=>console.log('Observable is completed now.')); 

Метод грешке се позива само ако постоји грешка. Када покренете горњи код, видећете следећи излаз у конзоли.

Излаз:

РкЈС Обсерваблес