Observables এবং Observers

আরএক্সজেএস (RxJS) - Web Development

291

RxJS-এর সবচেয়ে গুরুত্বপূর্ণ কনসেপ্ট হলো ObservableObservable একটি ডেটা স্ট্রিম বা সিকোয়েন্স, যা সময়ের সাথে এক বা একাধিক মান (values) প্রেরণ করে। Observable-এর মাধ্যমে অ্যাসিঙ্ক্রোনাস ডেটা এবং ইভেন্ট স্ট্রিমগুলোকে পরিচালনা করা যায়। এটা কেবল ডেটা রিসিভ করতে পারে না, বরং পর্যায়ক্রমে মানগুলো প্রেরণ করতে পারে এবং শেষে একটি complete() সিগন্যাল দিতে পারে যা প্রমাণ করে যে আর কোনো মান আসবে না।

এটি একটি কাস্টম ইভেন্ট বা ডেটা স্রোত হতে পারে, যেমনঃ

  • HTTP রিকোয়েস্টের রেসপন্স
  • ইউজার ইনপুট বা ক্লিক ইভেন্ট
  • টাইমার বা অটো-ইনক্রিমেন্ট ডেটা

অথবা আপনি নিজে কোনো কাস্টম স্ট্রিম তৈরি করতে পারেন যা আপনির প্রয়োজন অনুসারে কাজ করবে।

উদাহরণস্বরূপ:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);     // প্রথম মান
  subscriber.next(2);     // দ্বিতীয় মান
  subscriber.next(3);     // তৃতীয় মান
  subscriber.complete();  // শেষ সিগন্যাল
});

observable.subscribe({
  next(value) { console.log(value); },
  complete() { console.log('Completed!'); }
});

এখানে, Observable একটি স্ট্রিম তৈরি করেছে যা একে একে 1, 2, এবং 3 মানগুলো সাবস্ক্রাইবারকে প্রেরণ করবে, এবং শেষ হলে complete() সিগন্যাল পাঠাবে।


Observers

Observer হলো একটি অবজেক্ট যা Observable থেকে আসা ডেটা গ্রহণ করে। এটি মূলত এমন একটি অবজেক্ট, যা next(), error(), এবং complete() মেথডগুলির মাধ্যমে ডেটার প্রতিক্রিয়া জানায়। প্রতিটি Observer একটি বা একাধিক next() কল দ্বারা স্ট্রিমের মান গ্রহণ করে এবং শেষ হলে complete() মেথডের মাধ্যমে সেই স্ট্রিমটি শেষ করতে পারে।

Observer-এর তিনটি প্রধান মেথড থাকে:

  1. next(value): এটি একটি নতুন মান প্রাপ্তি বোঝায় এবং সাধারণত ডেটা প্রক্রিয়া করার জন্য ব্যবহৃত হয়।
  2. error(err): যদি কোনো সমস্যা ঘটে, তবে এটি একটি ত্রুটি (error) সিগন্যাল দেয়।
  3. complete(): এটি জানান দেয় যে Observable আর কোনো মান পাঠাবে না, এবং স্ট্রিমটি সম্পূর্ণ।

এখানে একটি Observer উদাহরণ দেওয়া হলো:

const observer = {
  next(value) {
    console.log('Received value:', value);
  },
  error(err) {
    console.error('Error:', err);
  },
  complete() {
    console.log('Stream is complete!');
  }
};

এখন, যদি আমরা এই Observer-কে উপরের Observable-এর সাথে সাবস্ক্রাইব করি, তাহলে এটি নিম্নরূপ কাজ করবে:

observable.subscribe(observer);

এখানে, Observer ত্রুটি বা স্ট্রিম শেষের সিগন্যালের জন্যও প্রতিক্রিয়া জানাবে।


Observables এবং Observers এর মধ্যে সম্পর্ক

RxJS-এ Observables এবং Observers এর মধ্যে একটি একে অপরের সাথে সম্পর্ক আছে। Observable একটি ডেটা স্ট্রিম বা সিকোয়েন্স তৈরি করে এবং Observer সেই ডেটা স্ট্রিম থেকে মান গ্রহণ করে। যখন Observer একটি Observable-এ সাবস্ক্রাইব করে, তখন Observable তার ডেটা প্রদান শুরু করে এবং Observer সেই ডেটা প্রক্রিয়া করে বা এর উপর কিছু কার্যক্রম সম্পাদন করে।

অর্থাৎ, Observable হলো ডেটা উৎস (data source), এবং Observer হলো সেই ডেটা গ্রহণকারী (data consumer)। দুটি একে অপরের সাথে যোগাযোগ করার জন্য সাবস্ক্রিপশন ব্যবহার করা হয়।


সারাংশ

RxJS-এ Observables এবং Observers একে অপরের সাথে সম্পর্কিত দুটি মৌলিক উপাদান। Observable একটি ডেটা স্ট্রিম উৎপন্ন করে, এবং Observer সেই স্ট্রিম থেকে ডেটা গ্রহণ করে এবং তার উপর কাজ করে। এই ধারণাগুলি আপনাকে অ্যাসিঙ্ক্রোনাস ডেটা এবং ইভেন্ট স্ট্রিমগুলোকে আরও কার্যকরভাবে পরিচালনা করতে সাহায্য করে এবং আপনার অ্যাপ্লিকেশনকে আরও রিয়্যাক্টিভ ও পরিষ্কারভাবে তৈরি করতে সক্ষম করে।

Content added By

Observable হল একটি মৌলিক কনসেপ্ট RxJS-এ, যা ডেটার স্ট্রিম বা সিকোয়েন্সের প্রতিনিধিত্ব করে। একটি Observable হলো একটি উৎস (source) যা একটি নির্দিষ্ট সময়ের মধ্যে এক বা একাধিক মান (values) উৎপন্ন করে এবং সাবস্ক্রাইবার (subscriber)-দের কাছে তা প্রেরণ করে। এটি অ্যাসিঙ্ক্রোনাস কার্যক্রম বা ইভেন্ট হ্যান্ডলিং-এর জন্য ব্যবহৃত হয়, যেমন HTTP রিকোয়েস্ট, টাইমার, অথবা ইউজারের ইনপুট ইভেন্ট।

Observables বিভিন্ন ধরনের ডেটা বা ইভেন্ট স্ট্রিমের সাথে কাজ করতে পারে এবং এগুলির সাথে সম্পর্কিত প্রতিটি পর্যায়কে ম্যানেজ করার জন্য একটি স্ট্রিম তৈরি করে। এটা কেবলমাত্র একটি ধারাবাহিক ডেটা রিডিং নয়, বরং এগুলি প্রতিক্রিয়া (reactive) হতে পারে, যার মাধ্যমে ডেটার পরিবর্তন বা নতুন মান আসলে এটি অবজার্ভারদের কাছে প্রেরণ করা হয়।

একটি সাধারণ Observable এর উদাহরণ:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  subscriber.next(3);
  subscriber.complete();
});

observable.subscribe({
  next(value) { console.log(value); },
  complete() { console.log('Completed'); }
});

এখানে, observable একটি ডেটা স্ট্রিম তৈরি করছে যা ১, ২, ৩ মানগুলিকে প্রেরণ করে এবং শেষে complete() কল করছে। subscribe() ফাংশনটি ডেটা প্রাপ্তির প্রক্রিয়াকে কার্যকর করছে।


Observer এর ধারণা

Observer হল এমন একটি অবজার্ভার প্যাটার্ন, যা মূলত Observable দ্বারা প্রেরিত ডেটা স্ট্রিমের প্রতি রিয়্যাক্টিভ প্রতিক্রিয়া জানায়। এটি একটি অবজার্ভারের মত কাজ করে, যা তার নিজস্ব প্রতিক্রিয়া ফাংশনের মাধ্যমে Observable থেকে আসা ডেটা গ্রহণ এবং প্রসেস করে। Observer এর মূল কাজ হলো Observable থেকে আসা প্রতিটি মান (value) গ্রহণ করা এবং তার উপর নির্দিষ্ট কাজ বা অপারেশন সম্পাদন করা।

Observer একটি অবজার্ভেবল থেকে আসা ডেটা গ্রহণের জন্য next(), error() এবং complete() ফাংশনগুলিকে ইমপ্লিমেন্ট করে। এগুলির মাধ্যমে Observer ডেটার প্রবাহের প্রতিটি ধাপের সাথে যুক্ত থাকে।

একটি সাধারণ Observer এর উদাহরণ:

const observer = {
  next(value) { console.log('Received value:', value); },
  error(err) { console.log('Error:', err); },
  complete() { console.log('Stream complete!'); }
};

observable.subscribe(observer);

এখানে, Observer next(), error() এবং complete() ফাংশনগুলির মাধ্যমে Observable এর ডেটা স্ট্রিম থেকে প্রাপ্ত মানগুলো গ্রহণ করছে এবং প্রতিটি মানের জন্য উপযুক্ত প্রতিক্রিয়া জানাচ্ছে।


Observable এবং Observer এর সম্পর্ক

Observable এবং Observer এর মধ্যে একটি সম্পর্ক রয়েছে যেখানে:

  • Observable হলো ডেটা বা ইভেন্টের উৎস, যা স্ট্রিম তৈরি করে এবং সেই স্ট্রিমে মান প্রেরণ করে।
  • Observer হলো সেই উৎস থেকে ডেটা বা ইভেন্ট গ্রহণকারী, যা প্রতিটি মানের জন্য একটি নির্দিষ্ট প্রতিক্রিয়া জানায়।

এটি একটি অবজার্ভার প্যাটার্নের মতো কাজ করে, যেখানে Observer একটি অবজার্ভেবল (Observable) থেকে আসা ডেটার উপর কাজ করে এবং তার মধ্যে কোনো পরিবর্তন ঘটলে তা স্বয়ংক্রিয়ভাবে অবজার্ভারের কাছে পৌঁছে যায়। এভাবে, একাধিক Observer একাধিক Observable এর সাথে সংযুক্ত হতে পারে এবং প্রতিটি Observer তাদের নিজস্বভাবে সেগুলির প্রতিক্রিয়া জানায়।


সারাংশ

RxJS-এ Observable এবং Observer দুটি অত্যন্ত গুরুত্বপূর্ণ ধারণা। Observable একটি ডেটা স্ট্রিম বা ইভেন্ট সিকোয়েন্স তৈরি করে এবং Observer সেই স্ট্রিম থেকে আসা মানগুলো গ্রহণ করে এবং তার উপর কাজ করে। এই দুটি উপাদান একত্রিত হয়ে একটি রিয়্যাক্টিভ প্রোগ্রামিং প্যাটার্ন তৈরি করে, যা অ্যাসিঙ্ক্রোনাস ডেটা এবং ইভেন্টগুলোকে সহজে হ্যান্ডল করার জন্য ব্যবহৃত হয়।

Content added By

RxJS-এ Observable তৈরি করা এবং তা subscribe করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে আপনি অ্যাসিঙ্ক্রোনাস ডেটা বা ইভেন্ট স্ট্রিমের ওপর কাজ করতে পারেন। এখানে আমরা ধাপে ধাপে দেখব কিভাবে একটি Observable তৈরি করতে হয় এবং তার পর কীভাবে সাবস্ক্রাইব করে ডেটা বা ইভেন্ট গ্রহণ করা হয়।


Observable তৈরি করা

RxJS-এ Observable এমন একটি সিকোয়েন্স বা স্ট্রিমের প্রতিনিধিত্ব করে যা একাধিক মান (values) সময়ের সাথে সাথে তৈরি করতে পারে। একটি Observable তৈরির জন্য new Observable() কন্সট্রাক্টর ব্যবহার করা হয়।

উদাহরণ:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);    // প্রথম মান
  subscriber.next(2);    // দ্বিতীয় মান
  subscriber.next(3);    // তৃতীয় মান
  subscriber.complete(); // Observable শেষ
});

এখানে, subscriber একটি অবজার্ভার (Observer) হিসেবে কাজ করে এবং তার মাধ্যমে আপনি ডেটার মানগুলো পাঠান। next() ফাংশন দ্বারা ডেটা পাঠানো হয় এবং complete() ফাংশন দ্বারা Observable শেষ ঘোষণা করা হয়।


Observable এর সাথে Subscribe করা

একবার একটি Observable তৈরি করার পর, সেই Observable থেকে ডেটা বা ইভেন্ট গ্রহণ করতে আপনাকে subscribe করতে হবে। subscribe() মেথড ব্যবহার করে আপনি Observable-এ সাবস্ক্রাইব করেন এবং এটি একটি Observer কে পাস করে, যা Observable থেকে ডেটা গ্রহণ করবে।

উদাহরণ:

observable.subscribe({
  next(x) { console.log(x); }, // ডেটা প্রাপ্তির পর
  complete() { console.log('Complete!'); } // Observable শেষ হলে
});

এখানে next() ফাংশনটি প্রতি নতুন মান পাওয়ার পর কল হয় এবং complete() ফাংশনটি Observable শেষ হওয়ার পরে কল হয়।


Observable এর সাথে Error Handling

RxJS-এ error হ্যান্ডলিংও অত্যন্ত গুরুত্বপূর্ণ। যদি কোনো ভুল ঘটে, তাহলে আপনি error() মেথড ব্যবহার করতে পারেন। এটি আপনাকে কোনো ধরনের ভুলের ক্ষেত্রে সঠিকভাবে প্রতিক্রিয়া জানাতে সাহায্য করবে।

উদাহরণ:

const observableWithError = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  subscriber.error('Something went wrong!');
});

observableWithError.subscribe({
  next(x) { console.log(x); },
  error(err) { console.log('Error: ' + err); },  // Error হ্যান্ডলিং
  complete() { console.log('Complete!'); }
});

এখানে, error() মেথডটি ডাকা হয়েছে এবং এর মাধ্যমে আপনি যেকোনো ত্রুটি বা ভুল মোকাবেলা করতে পারেন।


সারাংশ

RxJS-এ Observable তৈরি এবং তার সাথে subscribe করা একটি মূল উপাদান, যা অ্যাসিঙ্ক্রোনাস ডেটা বা ইভেন্টগুলির সাথে কাজ করার জন্য ব্যবহৃত হয়। new Observable() দিয়ে একটি Observable তৈরি করা হয় এবং subscribe() মেথড ব্যবহার করে আপনি সেই Observable থেকে ডেটা গ্রহণ করেন। এছাড়াও, আপনি error এবং complete মেথড ব্যবহার করে ভুল এবং শেষ অবস্থা নিয়ন্ত্রণ করতে পারেন।

Content added By

RxJS-এ Observer হল এমন একটি কনসেপ্ট যা একটি Observable (ডেটা স্ট্রিম) থেকে আসা মান বা ইভেন্টের উপর প্রতিক্রিয়া জানায়। যখন একটি Observable ডেটা প্রেরণ করে, তখন Observer তিনটি ধরণের ইভেন্টের মধ্যে প্রতিক্রিয়া জানায়: Next, Error, এবং Complete। এগুলি হলো Observer এর প্রধান অংশ, এবং এগুলির মাধ্যমে আমরা Observable থেকে আসা ডেটা বা ইভেন্টগুলোকে হ্যান্ডেল করি।


Next

Next হল Observer এর প্রথম অংশ, যা Observable থেকে আসা প্রতিটি মান (value) গ্রহণ করে। যখন একটি Observable ডেটা পাঠায়, তখন next() কল করা হয়। Next মেথডের মাধ্যমে আপনি ডেটার প্রতিটি উপাদান প্রক্রিয়া করতে পারেন।

Next শুধুমাত্র তখনই কার্যকর হবে যখন Observable নতুন মান প্রদান করবে। একাধিক মান আসলে, সবগুলো মান next() দ্বারা গ্রহণ করা হবে।

উদাহরণ:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next('Hello');
  subscriber.next('World');
  subscriber.complete();
});

observable.subscribe({
  next(value) { console.log(value); },
  complete() { console.log('Complete!'); }
});

এখানে, যখন Observable থেকে "Hello" এবং "World" মান পাঠানো হয়, তখন next() এর মাধ্যমে সেগুলো আউটপুট হবে।


Error

Error হল Observer এর দ্বিতীয় অংশ, যা Observable থেকে কোনো ত্রুটি (error) আসলে তাকে হ্যান্ডল করতে ব্যবহৃত হয়। যদি কোনো সমস্যা ঘটে বা ডেটার পাঠানোর সময় কোনো ত্রুটি আসে, তাহলে Observable error() কল করে এবং Observer এ থাকা error() মেথডটি সক্রিয় হয়।

Error যখনই ঘটবে, তখন Observable তার স্ট্রিম বন্ধ করে দিবে এবং আর কোনো ডেটা পাঠাবে না।

উদাহরণ:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next('Hello');
  subscriber.next('World');
  subscriber.error('Something went wrong');
});

observable.subscribe({
  next(value) { console.log(value); },
  error(err) { console.log('Error:', err); },
  complete() { console.log('Complete!'); }
});

এখানে, "Hello" এবং "World" মান পাঠানোর পর error() কল করা হবে এবং "Something went wrong" ত্রুটি মেসেজটি error() মেথডে আউটপুট হবে।


Complete

Complete হল Observer এর তৃতীয় অংশ, যা Observable যখন তার কাজ সম্পন্ন করে এবং আর কোনো ডেটা পাঠাবে না, তখন কল করা হয়। complete() মেথডটি তখনই ট্রিগার হয়, যখন Observable তার ডেটা স্ট্রিম শেষ করে বা কোনো কারণে আর ডেটা পাঠানোর প্রয়োজন হয় না।

এই মেথডটি Next এবং Error মেথডের পরেই চলতে থাকে, এবং একবার complete() কল হয়ে গেলে, Observable আর কোনো মান পাঠায় না।

উদাহরণ:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next('Hello');
  subscriber.next('World');
  subscriber.complete();
});

observable.subscribe({
  next(value) { console.log(value); },
  complete() { console.log('Complete!'); }
});

এখানে, "Hello" এবং "World" পাঠানোর পর complete() মেথডটি কল হবে এবং "Complete!" আউটপুট হবে।


সারাংশ

RxJS-এ Observer তিনটি প্রধান অংশে বিভক্ত: Next, Error, এবং Complete। এই তিনটি অংশের মাধ্যমে আমরা Observable থেকে আসা মান, ত্রুটি এবং স্ট্রিমের শেষ সংকেত হ্যান্ডল করতে পারি। Next আমাদের ডেটা গ্রহণ করতে সাহায্য করে, Error কোনো ত্রুটি মোকাবেলা করে এবং Complete আমাদের জানিয়ে দেয় যে স্ট্রিমটি সম্পন্ন হয়েছে। এই তিনটি অংশ একত্রিতভাবে RxJS-এ রিয়্যাক্টিভ প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By

RxJS (Reactive Extensions for JavaScript) একটি শক্তিশালী লাইব্রেরি যা Observables এর মাধ্যমে অ্যাসিঙ্ক্রোনাস ডেটা বা ইভেন্ট স্ট্রিম পরিচালনা করে। RxJS-এ, Observables দুটি প্রধান শ্রেণীতে ভাগ করা যায়: Hot Observables এবং Cold Observables। এগুলির মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে, যা বুঝতে পারলে আপনি আরো দক্ষতার সাথে RxJS ব্যবহার করতে পারবেন।


Cold Observables

Cold Observables হল এমন Observables যা যখন সাবস্ক্রাইবার যুক্ত হয়, তখন তাদের ডেটা স্ট্রিম শুরু হয়। অর্থাৎ, Cold Observable এর মান শুধুমাত্র সাবস্ক্রাইব করার পরেই উৎপন্ন হয়। প্রতিটি সাবস্ক্রাইবার একটি আলাদা ডেটা স্ট্রিম পায়, এবং সাবস্ক্রিপশন শুরু না করলে কোনো ডেটা প্রেরণ করা হয় না।

Cold Observable এর বৈশিষ্ট্য:

  • এটি বিলম্বিত (Lazy): Cold Observable ডেটা উৎপন্ন করার প্রক্রিয়া তখনই শুরু হয় যখন এটি সাবস্ক্রাইব করা হয়।
  • প্রতিটি সাবস্ক্রাইবারকে নতুন ডেটা প্রদান করে: যখন একটি Cold Observable সাবস্ক্রাইবার যুক্ত হয়, তখন সে তার নিজস্ব ডেটা স্ট্রিম পায়, এবং অন্য সাবস্ক্রাইবারের কাছে আগের ডেটা পুনরায় পাঠানো হয় না।
  • নতুন ডেটা উৎপন্ন হয়: প্রতিটি সাবস্ক্রাইবারের জন্য ডেটা একটি নতুন উৎস থেকে উৎপন্ন হয়, যা একে বিলম্বিত বা lazy করে তোলে।

উদাহরণ:

import { Observable } from 'rxjs';

const coldObservable = new Observable(subscriber => {
  console.log('Observable execution started');
  subscriber.next('Hello');
  subscriber.complete();
});

coldObservable.subscribe(val => console.log(val)); // "Observable execution started" তারপর "Hello"
coldObservable.subscribe(val => console.log(val)); // "Observable execution started" তারপর "Hello"

এই উদাহরণে, প্রতিটি সাবস্ক্রাইবারের জন্য Observable থেকে নতুন ডেটা উৎপন্ন হয়।


Hot Observables

Hot Observables হল এমন Observables যা সাবস্ক্রাইবারের সাথে যুক্ত না হলেও ডেটা পাঠানো শুরু করে। অর্থাৎ, Hot Observable ডেটা উৎপন্ন করা শুরু করে এবং এটি একাধিক সাবস্ক্রাইবারের সাথে শেয়ার করা যায়। একবার ডেটা উৎপন্ন হতে শুরু করলে, সমস্ত সাবস্ক্রাইবার সেই একই ডেটা স্ট্রিম পাবেন, এবং এটি eager (অথবা আগ্রহী) ডেটা স্ট্রিম হিসেবে পরিচিত।

Hot Observable এর বৈশিষ্ট্য:

  • এটি আগ্রহী (Eager): Hot Observable ডেটা উৎপন্ন শুরু করে সাবস্ক্রিপশন না করলেও। অর্থাৎ, এটি ডেটা উৎপন্ন করতে আগ্রহী।
  • একাধিক সাবস্ক্রাইবার শেয়ার করে: Hot Observable এর মাধ্যমে পাঠানো ডেটা একাধিক সাবস্ক্রাইবারের মধ্যে শেয়ার হয়, এবং একে পুনরায় প্রেরণ করা হয় না।
  • ডেটার উৎপত্তি একাধিক সাবস্ক্রাইবারের জন্য একই: Hot Observable থেকে একাধিক সাবস্ক্রাইবার একই ডেটা স্ট্রিম গ্রহণ করে, যা sharing এর মাধ্যমে কাজ করে।

উদাহরণ:

import { Subject } from 'rxjs';

const hotObservable = new Subject();

hotObservable.next('Hello');
hotObservable.subscribe(val => console.log(val)); // "Hello"
hotObservable.next('World');
hotObservable.subscribe(val => console.log(val)); // "World"

এখানে Subject হল একটি Hot Observable, যেখানে সাবস্ক্রাইবারের সাথে যুক্ত না হলেও ডেটা পাঠানো শুরু হয়।


Hot এবং Cold Observables এর মধ্যে পার্থক্য

বৈশিষ্ট্যCold ObservableHot Observable
ডেটা উৎপাদনসাবস্ক্রিপশন শুরু হলে উৎপন্ন হয়সাবস্ক্রিপশন শুরুর আগেই উৎপন্ন হয়
প্রতিটি সাবস্ক্রাইবারনতুন ডেটা পায়একই ডেটা শেয়ার করে
এটি কি 'Lazy' বা 'Eager'Lazy (ডেটা যখন প্রয়োজন তখন উৎপন্ন হয়)Eager (ডেটা উৎপন্ন হতে থাকে, সাবস্ক্রিপশন যতক্ষণ না করা হয়)
সাবস্ক্রাইবারদের প্রভাবএকে অন্যের সাথে প্রভাবিত হয় নাএকাধিক সাবস্ক্রাইবার একসাথে একই ডেটা শেয়ার করে
ব্যবহারHTTP রিকোয়েস্ট, ফাইল রিডিং এর মতো পরিস্থিতিইউজার ইভেন্ট, টাইমার, লাইভ ডেটা ফিড

সারাংশ

Cold Observables এবং Hot Observables উভয়ই RxJS এর গুরুত্বপূর্ণ উপাদান, কিন্তু তাদের মধ্যে প্রধান পার্থক্য হল ডেটা উৎপন্ন হওয়ার প্রক্রিয়া এবং সাবস্ক্রাইবারদের প্রতি প্রতিক্রিয়া। Cold Observables শুধুমাত্র সাবস্ক্রাইব করার পরই ডেটা উৎপন্ন করে এবং প্রতিটি সাবস্ক্রাইবারকে আলাদা ডেটা প্রদান করে, যেখানে Hot Observables সাবস্ক্রিপশন শুরুর আগেই ডেটা পাঠাতে শুরু করে এবং একাধিক সাবস্ক্রাইবার একই ডেটা শেয়ার করে। এই দুটি ধরনের Observable এর মধ্যে পার্থক্য বুঝতে পারলে আপনি আরো কার্যকরভাবে RxJS ব্যবহার করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...