Node.js میں غیر مطابقت پذیر کنٹرول فلو کیا ہے؟

Node Js My Ghyr Mtabqt Pdhyr Kn Rwl Flw Kya



کنٹرول فلو عمل درآمد کا طریقہ ہے جس میں آپ کی درخواست کے رہائشی عمل کو انجام دیا جاتا ہے۔ جب آپ پورے پروگرام کے کسی مخصوص حصے کو پہلے یا کسی بے ترتیب طریقہ کی تکمیل کے بعد انجام دینا چاہتے ہیں تو یہ بہاؤ بہت مدد کرتا ہے۔ عمل درآمد کا بہاؤ عام طور پر استعمال کیے جانے والے طریقہ کی نوعیت کے مطابق متضاد یا ہم وقت ساز میں سیٹ کیا جاتا ہے۔

یہ تحریر Node.js میں غیر مطابقت پذیر کنٹرول کے بہاؤ کے کام اور نفاذ کی وضاحت کرتی ہے۔

Node.js میں غیر مطابقت پذیر کنٹرول فلو کیا ہے؟

Node.js میں غیر مطابقت پذیر کنٹرول کے بہاؤ سے مراد وہ طریقہ ہے جس سے آپ عمل درآمد کے بہاؤ کو منظم اور کنٹرول کرتے ہیں جب غیر مطابقت پذیر کارروائیوں سے نمٹتے ہیں، جیسے کہ نیٹ ورک کی درخواستیں کرنا، واقعات کو ہینڈل کرنا وغیرہ۔ اگرچہ Node.js خاص طور پر ایک متضاد نوعیت کے لیے ڈیزائن کیا گیا ہے لیکن یہ یقینی بنانا بہتر ہے کہ مخصوص کوڈ مطلوبہ ترتیب میں عمل میں آئے اور مؤثر طریقے سے غلطی سے نمٹنے کو انجام دے۔







آئیے غیر مطابقت پذیر کنٹرول کے بہاؤ کی سمجھ کی سطح کو بڑھانے کے لیے ایک کوڈ کی مثال رکھتے ہیں:



fsObj تھا۔ = ضرورت ہے ( 'fs' ) ;
// خلاصہ کال بیک فنکشن
تقریب readFileAsync ( targetFilePath ) {
واپسی نئی وعدہ ( ( حل کرنا، رد کرنا ) => {
fsObj readFile ( targetFilePath، 'utf-8' ، ( غلطی، مواد ) => {
اگر ( غلطی ) {
مسترد ( غلطی ) ;
} اور {
حل ( مواد ) ;
}
} ) ;
} ) ;
}

// ایک سے زیادہ فائلوں کو ترتیب میں پڑھنے کا فنکشن
async فنکشن readFileSequentially ( ) {
کوشش کریں {
const فائل 1 ڈیٹا = readFileAsync کا انتظار کریں۔ ( 'mynewfile1.txt' ) ;
تسلی. لاگ ( 'پہلی فائل ڈیٹا:' فائل 1 ڈیٹا ) ;

const فائل 2 ڈیٹا = readFileAsync کا انتظار کریں۔ ( 'usecase.txt' ) ;
تسلی. لاگ ( 'دوسری فائل ڈیٹا:' فائل 2 ڈیٹا ) ;

const فائل 3 ڈیٹا = readFileAsync کا انتظار کریں۔ ( 'package.json' ) ;
تسلی. لاگ ( 'تیسری فائل ڈیٹا:' فائل 3 ڈیٹا ) ;
} پکڑنا ( غلطی ) {
تسلی. غلطی ( 'ہوئی خرابی:' ، غلطی ) ;
}
}

ترتیب سے فائل پڑھیں ( ) ;

مندرجہ بالا کوڈ کی وضاحت اس طرح ہے:



  • سب سے پہلے، درآمد کریں ' fs 'ماڈیول اور اس کے آبجیکٹ کو 'میں محفوظ کریں fsObj متغیر
  • پھر، ایک کی وضاحت کریں ' readFileAsync() ' نامی فنکشن جس کا واحد پیرامیٹر ہے ' targetFilePath ' جس میں ٹارگٹڈ فائل کا راستہ ہوتا ہے۔
  • یہ فنکشن واپس کرتا ہے ' وعدہ 'جس میں مطلوبہ کال بیک فنکشن ہوتا ہے جس میں دو پیرامیٹرز ہوتے ہیں' حل 'اور' مسترد '
  • کال بیک فنکشن کے اندر، 'کو پکاریں۔ ReadFile() 'طریقہ کار فراہم کردہ' fs 'ماڈیول۔ نیز، فراہم کردہ پیرامیٹر پاس کریں “ targetFilePath 'پہلے پیرامیٹر کے طور پر 'readFile()' طریقہ کار۔
  • ' readFile ' طریقہ کار میں مطلوبہ کال بیک فنکشن بھی ہوتا ہے جس میں ' کے پیرامیٹرز ہوتے ہیں غلطی 'اور' مواد ' پاس کریں' غلطی 'میں' مسترد() 'غلطیوں کی صورت میں طریقہ اور' مواد 'میں' حل() کوئی غلطی نہ ملنے کی صورت میں طریقہ۔
  • اب، ایک غیر مطابقت پذیر فنکشن بنائیں جس کا نام ' ReadFileSequentially() 'اور اس میں ایک' پکڑنے کی کوشش 'بلاک.
  • کے اندر ' کوشش کریں 'بلاک کریں، تین متغیرات بنائیں جو پہلے سے تخلیق شدہ کو مدعو کرتے ہوئے پیدا کردہ نتیجہ کو ذخیرہ کرتے ہیں' readFileAsync() فنکشن ہر بار مطلوبہ فائل کا راستہ جس پر عمل درآمد کی ضرورت ہوتی ہے اس فنکشن قوسین کے اندر سے گزر جاتا ہے۔
  • کلیدی لفظ ' انتظار کرو فائل کو پڑھنے کی کارروائی مکمل ہونے تک کنٹرول کے بہاؤ کو روکنے کے لیے درخواست کرنے کے وقت فنکشن کے پیچھے ” بھی رکھا جاتا ہے۔
  • نیز، بازیافت شدہ یا پڑھنے والی فائل کے مواد کو ظاہر کرنے کے لیے کنسول پر متغیرات دکھائیں۔
  • آخر میں، پر مشتمل ' ReadFileSequentially() فنکشن

عمل کرنے کے لیے، اوپر بیان کردہ کوڈ کو اپنی مطلوبہ فائل میں رکھیں جس کی توسیع ' .js آپ کے Node.js پروجیکٹ کے اندر رہائش پذیر۔ ہمارے معاملے میں اہم فائل ہے ' controlFlow.js '، تو ہماری پھانسی کی کمانڈ مندرجہ ذیل ہوگی:





نوڈ کنٹرول فلو۔ js

تیار کردہ آؤٹ پٹ سے پتہ چلتا ہے کہ غیر مطابقت پذیر کنٹرول فلو کا استعمال کرتے ہوئے مطلوبہ فائلوں کا ڈیٹا ترتیب سے ظاہر ہوتا ہے:



Node.js بلاک شدہ کوڈ کی ممکنہ وجوہات اور اجتناب کے اقدامات کیا ہیں؟

ہم وقت ساز کوڈ کو 'کے نام سے بھی جانا جاتا ہے۔ بلاک کوڈ 'کیونکہ یہ چلنے والے عمل کے نفاذ تک عمل پر عمل درآمد کو روکتا ہے۔ اس کے نتیجے میں ایپلی کیشن کی خراب کارکردگی اور ردعمل ہوتا ہے۔ بلاکنگ کوڈ عام طور پر سنکرونس یا سی پی یو سے منسلک آپریشنز کی وجہ سے ہوتا ہے۔ کوڈ بلاک کرنے کی ممکنہ وجوہات اور ان سے بچنے کے طریقے ذیل میں جدول میں بیان کیے گئے ہیں۔

کوڈ بلاک کرنے کی وجوہات کوڈ بلاک کرنے کا حل
ہم وقت ساز فائل آپریشنز کا استعمال جیسے fs.readFileSync()۔ غیر مطابقت پذیر فائل آپریشنز جیسے fs.readFile استعمال کریں۔
سی پی یو سے منسلک آپریشنز کا استعمال جیسے ہیوی کمپیوٹیشنز یا طویل عرصے سے چلنے والے لوپس۔ سی پی یو سے منسلک کاموں کو ورکر تھریڈز کو چھوٹے، غیر مسدود حصوں میں توڑ کر آف لوڈ کریں۔
ریموٹ APIs پر HTTP درخواستوں کے استعمال کی وجہ سے بیرونی نیٹ ورک کی سست درخواستیں۔ Axios یا بلٹ ان 'http' یا 'https' ماڈیول جیسی غیر مطابقت پذیر HTTP لائبریریوں کا استعمال کریں۔
غیر موزوں ڈیٹا بیس کے سوالات ڈیٹا بیس کے ذریعہ فراہم کردہ استفسار کی اصلاح کے ٹولز کا استعمال کرتے ہوئے ڈیٹا بیس کے سوالات کو بہتر بنائیں۔
بغیر وقفے کے لامحدود لوپس یا تنگ لوپس کا استعمال۔ اس بات کو یقینی بنائیں کہ لوپس میں باہر نکلنے کے حالات ہوں اور لامحدود طور پر نہ چلیں۔

نتیجہ

غیر مطابقت پذیر کنٹرول بہاؤ مطلوبہ الفاظ کا استعمال کرتا ہے ' async/await ایک غیر مطابقت پذیر طریقے سے عمل درآمد کے بہاؤ میں ترمیم یا کنٹرول کرنے کے لیے۔ مطلوبہ غیر مطابقت پذیر طریقہ کے لیے کال بیک کو ایک الگ فنکشن میں خلاصہ اور ذخیرہ کیا جاتا ہے۔ اس کے بعد اس فنکشن کو await کلیدی لفظ کی مدد سے ترتیب وار انداز میں دوسرے طریقوں کے ساتھ مطلوبہ طور پر استعمال کیا جاتا ہے۔ یہ فنکشنز ایک اور حسب ضرورت غیر مطابقت پذیر فنکشن میں محفوظ کیے جاتے ہیں جسے پھر عمل درآمد شروع کرنے کے لیے کہا جاتا ہے۔ اس گائیڈ نے Node.js میں غیر مطابقت پذیر کنٹرول کے بہاؤ کی وضاحت کی ہے۔