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-এ রিয়্যাক্টিভ প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more