পার্থক্য কি?
আপনি যেমন আপনার উদাহরণটিতে দেখেন, মূল পার্থক্য হ'ল উত্স কোডের পঠনযোগ্যতা উন্নত করা। আপনার উদাহরণে দুটি মাত্র ফাংশন রয়েছে, তবে ভাবুন তো সেখানে এক ডজন কাজ আছে? তারপর এটি যেতে হবে
function1().function2().function3().function4()
এটি সত্যিই কুৎসিত হয়ে উঠছে, এবং পড়তে অসুবিধা হচ্ছে, বিশেষত যখন আপনি ক্রিয়াকলাপগুলি ভিতরে নিয়ে যাচ্ছেন। ভিজ্যুয়াল স্টুডিও কোডের মতো নির্দিষ্ট সম্পাদকগুলির উপরে 140 লাইনের দৈর্ঘ্যের বেশি অনুমতি দেয় না। তবে যদি এটি অনুসরণ করে চলে যায়।
Observable.pipe(
function1(),
function2(),
function3(),
function4()
)
এটি মারাত্মকভাবে পাঠযোগ্যতার উন্নতি করে improves
যদি কোনও পার্থক্য না থাকে তবে ফাংশন পাইপটি কেন বিদ্যমান?
পিআইপিই () ফাংশনটির উদ্দেশ্য হ'ল সমস্ত ফাংশন একসাথে করা এবং পর্যবেক্ষণযোগ্য ফিরে আসা। এটি প্রাথমিকভাবে একটি পর্যবেক্ষণযোগ্য লাগে, তারপরে যে পর্যবেক্ষণযোগ্য তার ভিতরে ব্যবহৃত প্রতিটি ফাংশন দ্বারা পাইপ () ফাংশন জুড়ে ব্যবহৃত হয়।
প্রথম ফাংশন পর্যবেক্ষণযোগ্য গ্রহণ করে, এটি প্রক্রিয়া করে, এর মানটি পরিবর্তন করে এবং পরবর্তী ফাংশনে চলে যায়, তারপরে পরবর্তী ফাংশনটি প্রথম ফাংশনের পর্যবেক্ষণযোগ্য আউটপুট নেয়, এটি প্রক্রিয়া করে এবং পরবর্তী ফাংশনে চলে যায়, তারপরে এটি সমস্ত ফাংশন অবধি চলে পাইপের () ফাংশনের অভ্যন্তরে সেই পর্যবেক্ষণযোগ্য ব্যবহার করুন, অবশেষে আপনার পর্যবেক্ষণযোগ্য প্রক্রিয়াজাতকরণ হবে। এর শেষে আপনি মানটি বের করার জন্য সাবস্ক্রাইব () ফাংশন সহ পর্যবেক্ষণযোগ্য কার্যকর করতে পারেন। মনে রাখবেন, মূল পর্যবেক্ষণে মানগুলি পরিবর্তন হয় না !!
এই ফাংশনগুলিতে কেন বিভিন্ন আমদানির প্রয়োজন?
আমদানি নির্ভর করে যেখানে ফাংশনটি আরএক্সজেস প্যাকেজে নির্দিষ্ট করা আছে তার উপর। এটা এইভাবেই চলে. সমস্ত মডিউল কৌনিক মধ্যে নোড_মডিউল ফোল্ডারে সংরক্ষণ করা হয়। "মডিউল" থেকে {শ্রেণি import আমদানি করুন;
নীচের কোডটি উদাহরণ হিসাবে নেওয়া যাক। আমি এটি কেবল স্ট্যাকব্লিটজে লিখেছি। সুতরাং কিছুই স্বয়ংক্রিয়ভাবে উত্পন্ন হয় না, বা অন্য কোথাও থেকে অনুলিপি করা হয়। আপনি যখন গিয়ে পড়তে পারেন এবং rxjs ডকুমেন্টেশনে কী বলেছেন তা অনুলিপি করার বিষয়টি আমি দেখতে পাচ্ছি না। আমি ধরে নিয়েছি আপনি এখানে এই প্রশ্ন জিজ্ঞাসা করেছেন, কারণ আপনি ডকুমেন্টেশন বুঝতে পারেন নি।
- সম্পর্কিত মডিউলগুলি থেকে আমদানি করা পাইপ, পর্যবেক্ষণযোগ্য, মানচিত্রের ক্লাস রয়েছে।
- ক্লাসের মূল অংশে, পাইপে () ফাংশনটি কোডের মতো ব্যবহার করেছি।
অফ () ফাংশনটি একটি পর্যবেক্ষণযোগ্যকে ফিরিয়ে দেয়, এটি সাবস্ক্রাইব করার সময় ক্রমসংখ্যায় নির্গত হয়।
পর্যবেক্ষণযোগ্য এখনও সাবস্ক্রাইব করা হয়নি।
আপনি যখন এটি পর্যবেক্ষণযোগ্য পাইপ () পছন্দ করেন তখন পাইপ () ফাংশন প্রদত্ত পর্যবেক্ষণযোগ্যকে একটি ইনপুট হিসাবে ব্যবহার করে।
প্রথম ফাংশন, মানচিত্র () ফাংশনটি পর্যবেক্ষণযোগ্য, এটি প্রক্রিয়াজাতকরণ, প্রক্রিয়াজাত পর্যবেক্ষণযোগ্যটিকে পাইপ () ফাংশনে ফিরিয়ে দেয়,
তারপরে সেই প্রক্রিয়াজাত পর্যবেক্ষণযোগ্যটি যদি সেখানে থাকে তবে পরবর্তী ক্রিয়ায় দেওয়া হবে,
এবং এটি এভাবে চলে যতক্ষণ না সমস্ত ফাংশন পর্যবেক্ষণযোগ্য প্রক্রিয়া করে,
শেষে যে পর্যবেক্ষণযোগ্যটি পাইপ () ফাংশন দ্বারা পরিবর্তনশীলতে ফিরে আসে, নিম্নলিখিত উদাহরণে এর obs হয়।
এখন পর্যবেক্ষণযোগ্য জিনিসটি হ'ল পর্যবেক্ষক যতক্ষণ না এটি সাবস্ক্রাইব করেন না ততক্ষণ এটি কোনও মূল্য নির্গত করে না। সুতরাং আমি এই পর্যবেক্ষণযোগ্যতে সাবস্ক্রাইব করার জন্য সাবস্ক্রাইব () ফাংশনটি ব্যবহার করেছি, তারপরেই আমি এটি সাবস্ক্রাইব করার সাথে সাথেই। () ফাংশনটি নির্গমন মানগুলি শুরু করে, তারপরে সেগুলি পাইপ () ফাংশনের মাধ্যমে প্রসেস করা হয় এবং আপনি শেষ পর্যন্ত চূড়ান্ত ফলাফল পাবেন, উদাহরণস্বরূপ 1 () ফাংশন থেকে নেওয়া হয়েছে, 1 মানচিত্রে () ফাংশনে 1 যোগ করা হয়েছে, এবং ফিরে ফিরে। সাবস্ক্রাইবটির ভিতরে একটি আর্গুমেন্ট হিসাবে আপনি সেই মানটি পেতে পারেন (ফাংশন ( আর্গুমেন্ট )}}) ফাংশনের ।
আপনি যদি এটি মুদ্রণ করতে চান, তবে হিসাবে ব্যবহার করুন
subscribe( function (argument) {
console.log(argument)
}
)
import { Component, OnInit } from '@angular/core';
import { pipe } from 'rxjs';
import { Observable, of } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
obs = of(1,2,3).pipe(
map(x => x + 1),
);
constructor() { }
ngOnInit(){
this.obs.subscribe(value => console.log(value))
}
}
https://stackblitz.com/edit/angular-ivy-plifkg
pipe()
আপনি অপারেটার যা আপনি তৈরি পাস?