কলব্যাকস ভিএস ভিএস অ্যাসিঙ্ক / অ্যাওয়েটের প্রতিশ্রুতি দেয়

এই সপ্তাহের জন্য বার্লিনজেএস-এর বৈঠকে ঘোষিত স্পিকারগুলির মধ্য দিয়ে স্ক্রোল করার সময় আমি লক্ষ্য করেছি যে মোহাম্মদ ওন জেএস ওয়ার্ল্ডের সর্বশেষ বিগ হিট, অ্যাসিঙ্ক এবং তার অপেক্ষায় প্রথমবারের মতো কথা বলবেন (শুভকামনা)। তাই আমি ভেবেছিলাম আমি পাশাপাশি নিজের সংক্ষিপ্তসারটি করতে পারি যাতে আমি নোটগুলি তুলনা করতে পারি;)

এখন কোনও উপায়েই আমি এই ব্লগটির সাথে নতুন স্থল পাড়াতে যাচ্ছি না তবে আমার পক্ষে কমপক্ষে এই পুরো প্রতিশ্রুতি & async / প্রতীক্ষা করা জিনিসটি বাস্তবে এটি ব্যবহার না করা অবধি কার্যকর হবে না। এবং এটিই আমরা করব।

অন্যান্য ভাষাগুলি থেকে যারা আসছেন তাদের জন্য বেনিফিট প্রতিশ্রুতি এবং অ্যাসিঙ্ক + ওয়েভেট প্রদান চেইন ফাংশনগুলির একটি পরিষ্কার এবং পঠনযোগ্য উপায়, এবং নির্ভরযোগ্য এবং সংক্ষিপ্ত প্রবাহ নিয়ন্ত্রণ প্রয়োগ করে। বেশিও না কমও না.

আপনি হাঁটাচলা, চক্র বা কোনও বাসে যান না কেন, আপনি যেখানে যেতে চান সেখানে যেতে পারেন। ফাংশন কলব্যাক্স ভিএস প্রতিশ্রুতির জন্য একই।

আসুন এটি করা যাক → সেটআপ

ধরা যাক আমরা একটি নোড.জেএস অ্যাপ্লিকেশন পেয়েছি, যা একটি ফর্ম থেকে ডেটা পোস্ট করতে সক্ষম একটি নিয়ামককে, যা মঙ্গুসের মাধ্যমে (কিছুটা মিডলওয়্যার সহ) আমাদের ডিবিতে সঞ্চয় করে চলেছে।

এই দৃশ্যটি আমাদের কয়েকটি বিকল্প দেয়, তিনটি ভাল:

Callbacks

এর টিএলডিআর মূলত এটি হ'ল যদি আপনার একাধিক ফাংশন থাকে যা আমাদের নিয়ামক, জেএস এর মধ্যে কার্যকর করা দরকার, কারণ এটি অ্যাসিঙ্ক প্রকৃতির পরবর্তীটিতে যাওয়ার আগে কোনও ক্রিয়াকলাপ শেষ হওয়ার জন্য অপেক্ষা করবে না। লোকেরা কীভাবে এইগুলি পেতে শুরু করল তা কলব্যাকগুলি ব্যবহার করে আপনি নীচে দেখতে পাচ্ছেন।

আমরা ফাংশনএ বলি, এবং পরবর্তী কোনও ফাংশন সম্পাদন ফাংশনএর ফিরে আসার উপর নির্ভরশীল হয়ে ওঠে।

যখন আমাদের আরও জটিল কাজগুলি হয় তখন এটির সাথে সমস্যাটি উপস্থিত হতে শুরু করে। সম্ভবত আপনাকে আপনার ডেটা স্যানিটাইজ করতে হবে, বা বৈধতা চালাতে হবে বা ডিবিতে অন্যান্য রেকর্ডের সাথে সমিতি তৈরি করতে হবে। অনেকেই কলব্যাক নরক হিসাবে উল্লেখ করেছেন তাড়াতাড়ি পৌঁছেছেন।

আমরা নীড় কলব্যাক করা শুরু করি এবং জিনিসগুলি দ্রুত পড়া শক্ত হয়ে যায়।

অঙ্গীকার

প্রতিশ্রুতি এমন একটি বিষয় যা অ্যাসিঙ্ক্রোনাস ক্রিয়াকলাপের শেষ বা ব্যর্থতার প্রতিনিধিত্ব করে।

আমরা সেই নেস্টড, এলোমেলো পড়া এবং এই জাতীয় কিছু ব্যবহার করে একই লক্ষ্য অর্জন করা কঠিন এড়াতে পারি।

আসুন আমরা বলি যে আমরা আর একটি রেকর্ড সন্ধান করতে চাই এবং সংরক্ষণের আগে একটি সমিতি তৈরি করতে চাই, আমরা জানি কলব্যাকের জগতে এটি দেখতে কেমন, তবে প্রতিশ্রুতি দিয়ে আমরা এর সাথে কিছুটা অনুরূপ শৃঙ্খলা নিয়ে শেষ করি:

প্রতিশ্রুতিগুলি কলব্যাক জাহান্নাম এড়ানোর সময় আমাদের পরিষ্কারভাবে চেইন চেইন পরবর্তী ক্রিয়াকলাপের অনুমতি দেয় এবং যতক্ষণ না আপনি সর্বদা আপনার প্রতিটি ব্লকের প্রতিশ্রুতি ফিরিয়ে দেন, ততক্ষণে এটি চেইন অবিরত থাকবে।

এসিঙ্ক / প্রতীক্ষা

এখন এখানে শীতল জিনিস যতক্ষণ না আমার ফাংশন async হিসাবে ঘোষিত হয়, কেবলমাত্র একটি কলটির জন্য অপেক্ষা করা হয়, উপরের এস 6 প্রতিশ্রুতি ভিত্তিক সমাধানগুলির মতো ঠিক একই জিনিসটি করবে তবে ক্লিনার মার্কআপ সহ।

এটি মার্জিত এবং সহজ, তবে আমার মতে একমাত্র ট্রেড অফ হ'ল ত্রুটিগুলি কীভাবে পরিচালনা করা যায়। নিয়মিত প্রতিশ্রুতিগুলি আমাদের একটি দুর্দান্ত এবং সহজ ক্যাচ ব্লক সরবরাহ করে যা ব্যতিক্রম এবং ত্রুটিগুলি মোকাবেলা সহজতর করে, যদিও অ্যাসিঙ্ক ফাংশনগুলিতে আমার জ্ঞানের ত্রুটিগুলি ধরায় সত্যই উপায় নেই। সুতরাং আপনার এই জাতীয় কিছু করা দরকার।

এখন এটি সুন্দর নয়, তবে আমার সামান্য উদাহরণের জন্য দয়া করে আমাকে জড়িয়ে দিন। এবং অবশ্যই বাস্তব জগতের সাথে এটি মোকাবেলার জন্য প্রচুর কৌশল এবং কৌশল রয়েছে।

এবং সেখানে আপনি এটা আছে

প্রতিশ্রুতিগুলির একটি অ্যাপ্লিকেশন এবং অ্যাসিঙ্ক / প্রতিদিন ব্যবহারের ক্ষেত্রে অপেক্ষায় থাকায় প্রায় প্রতিটি বিকাশকারীই তার সাথে পরিচিত। এটি পড়ার জন্য সময় দেওয়ার জন্য ধন্যবাদ।

আপনি একটি ত্রুটি চিহ্নিত করেছেন? আমি কি বাজে কথা বলছি?

আপনি যদি মনে করেন আমি লাঠিটির ভুল শেষ পেয়েছি তবে আমাকে জানান! আমি মানুষ, আমি ভুল করি, আমি তাদের থেকে শিখতে পেরে আনন্দিত:

সূত্র:

আমি Async + Await এ ওয়েস বোসের আলোচনা দেখার প্রক্রিয়ায় রয়েছি এবং আপনি যদি আরও জানতে চান তবে আমি এটি পর্যাপ্ত পরিমাণে সুপারিশ করতে পারি না (তিনি আরও অনেক বিস্তারিতভাবে ত্রুটি পরিচালনার বর্ণনা দিয়েছেন, গুরুত্ব সহকারে এটি দুর্দান্ত)। আসলে আমি কেবল তাকে সাধারণভাবে অনুসরণ করার সুপারিশ করব (আমি একজন বিশাল ভক্ত ওয়েস বোস!)।

প্রতিশ্রুতি ব্যবহারের উপর MDN ওয়েব ডক্স

Async + তে MDB ওয়েব ডক্স অপেক্ষা করুন