merge(), concat(), combineLatest() এর ব্যবহার

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

255

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

এখানে merge(), concat(), এবং combineLatest() এর বিস্তারিত ব্যবহার ব্যাখ্যা করা হলো।


1. merge() অপারেটর

merge() অপারেটরটি একাধিক Observable কে একত্রিত করে এবং তাদের ডেটাকে একত্রিত করে সাবস্ক্রাইবারদের কাছে পাঠায়। এটি তাদের মধ্যে ডেটার আর্ডার বজায় না রেখে, তাদের যতটুকু দ্রুত সম্ভব ডেটা পাঠিয়ে দেয়। এটি ব্যবহার করা হয় যখন আপনি চান একাধিক স্ট্রিমের ডেটা একই সময়ে প্রসেস করতে।

উদাহরণ:

import { of, merge } from 'rxjs';

// দুটি আলাদা Observable তৈরি করা
const first$ = of(1, 2, 3);
const second$ = of(4, 5, 6);

merge(first$, second$).subscribe(value => {
  console.log(value);  // এটি 1, 2, 3, 4, 5, 6 প্রিন্ট করবে
});

ব্যাখ্যা:
এখানে, merge() অপারেটর দুটি আলাদা Observable (first$ এবং second$) একত্রিত করেছে এবং তাদের ডেটা একই সময়ে সাবস্ক্রাইবারদের কাছে পাঠিয়েছে। ডেটার অর্ডার গুরুত্বপূর্ণ নয়, যেহেতু একসাথে স্ট্রিম করা হচ্ছে।


2. concat() অপারেটর

concat() অপারেটরটি একাধিক Observable কে একত্রিত করে এবং একটির পর একটি ডেটা পাঠায়। এর মানে হল যে প্রথম Observable পুরোপুরি শেষ হওয়ার পর, দ্বিতীয় Observable এর ডেটা পাঠানো শুরু হবে, তারপর তৃতীয়, চতুর্থ, ইত্যাদি। এটি ব্যবহার করা হয় যখন আপনি চান একটি স্ট্রিম পুরোপুরি শেষ হওয়ার পর অন্য স্ট্রিম শুরু হবে।

উদাহরণ:

import { of, concat } from 'rxjs';

// দুটি আলাদা Observable তৈরি করা
const first$ = of(1, 2, 3);
const second$ = of(4, 5, 6);

concat(first$, second$).subscribe(value => {
  console.log(value);  // এটি 1, 2, 3, তারপর 4, 5, 6 প্রিন্ট করবে
});

ব্যাখ্যা:
এখানে, concat() অপারেটরটি প্রথম Observable (first$) এর ডেটা পাঠানোর পর, তার পরে দ্বিতীয় Observable (second$) এর ডেটা পাঠাচ্ছে। এই ক্ষেত্রে, ডেটার অর্ডার বজায় রাখা হয় এবং একটির পর একটি স্ট্রিম পাঠানো হয়।


3. combineLatest() অপারেটর

combineLatest() অপারেটরটি একাধিক Observable কে একত্রিত করে এবং যখনই কোনো Observable এর মান পরিবর্তিত হয়, তখন সব Observable এর সর্বশেষ মানগুলোকে একত্রিত করে সাবস্ক্রাইবারদের কাছে পাঠায়। এটি তখনই ডেটা পাঠায় যখন কোনো একটি Observable নতুন মান প্রদান করে, কিন্তু যতক্ষণ না সমস্ত Observable অন্তত একটি মান প্রদান করে, ততক্ষণ এটি কিছু পাঠায় না।

উদাহরণ:

import { of, combineLatest } from 'rxjs';

// দুটি Observable তৈরি করা
const first$ = of(1, 2, 3);
const second$ = of('A', 'B', 'C');

combineLatest([first$, second$]).subscribe(([first, second]) => {
  console.log(first, second);  // এটি সর্বশেষ মানের যোড়গুলো প্রিন্ট করবে
});

ব্যাখ্যা:
এখানে, combineLatest() অপারেটরটি first$ এবং second$ দুটি Observable এর সর্বশেষ মান একত্রিত করেছে এবং সাবস্ক্রাইবারকে পাঠিয়েছে। এটি তখনই ডেটা পাঠায় যখন কোনো একটি Observable একটি নতুন মান প্রদান করে, এবং সমস্ত Observable থেকে সর্বশেষ মানের একটি জোড়া পাঠায়।

আউটপুট:

3 C

এখানে, combineLatest() প্রথমে first$ এর সব মান নেয়, তারপর second$ থেকে সর্বশেষ মান নেয় এবং তাদের একত্রিত করে পাঠায়।


সারাংশ

অপারেটরবর্ণনাআচরণ
merge()একাধিক Observable কে একত্রিত করে তাদের ডেটা একত্রে পাঠায়, ডেটার অর্ডার বজায় রাখে না।স্ট্রিমগুলো একসাথে চলে, ডেটা যেকোনো অর্ডারে আসতে পারে।
concat()একাধিক Observable কে একত্রিত করে, তবে একটি Observable পুরোপুরি শেষ হওয়ার পরেই পরবর্তী Observable চলে।ডেটা একটির পর একটি সাবস্ক্রাইবারে পাঠানো হয়।
combineLatest()একাধিক Observable এর সর্বশেষ মানগুলো একত্রিত করে যখনই কোন একটি Observable নতুন মান দেয়।সমস্ত Observable থেকে সর্বশেষ মানগুলো একসাথে পাঠানো হয়।

এই অপারেটরগুলি RxJS-এ একাধিক Observable এর ডেটা স্ট্রিমকে একত্রিত করার জন্য ব্যবহৃত হয় এবং ডেটা সংগ্রহের প্রক্রিয়া সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...