𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀
ایک Promise ایک asynchronous ٹاسک کے نتیجے کی نمائندگی کرتا ہے۔
آپ Promises کو API calls، database queries، اور فائل ریڈنگ کے لیے استعمال کرتے ہیں۔
ایک Promise کی تین حالتیں (states) ہوتی ہیں:
- Pending: ٹاسک ابھی جاری ہے۔
- Fulfilled: ٹاسک کامیابی سے مکمل ہو گیا۔
- Rejected: ٹاسک کسی error کے ساتھ ناکام ہو گیا۔
اس کا ڈھانچہ (structure) کچھ اس طرح ہے:
const promise = new Promise((resolve, reject) => {
// The executor runs immediately
});
آپ ان میتھڈز (methods) کے ذریعے نتائج کو ہینڈل کرتے ہیں:
- .then(): جب promise کامیاب ہو جائے تو یہ چلتا ہے۔
- .catch(): جب promise ناکام ہو جائے تو یہ چلتا ہے۔
- .finally(): جب ٹاسک ختم ہو جائے، چاہے نتیجہ کچھ بھی ہو، یہ چلتا ہے۔
یاد رکھنے کے لیے اہم اصول:
- پہلا نتیجہ جیت جاتا ہے۔ اگر آپ resolve() اور پھر reject() کو کال کرتے ہیں، تو resolve جیت جائے گا۔
- executor function synchronously چلتا ہے۔
- async اور await کا استعمال آپ کے کوڈ کو .then() کے مقابلے میں پڑھنے میں آسان بنا دیتا ہے۔
متعدد promises کو ہینڈل کرنا:
- Promise.all(): یہ fail-fast طریقہ کار پر عمل کرتا ہے۔ اگر ایک promise ناکام ہو جائے، تو پورا گروپ ناکام ہو جاتا ہے۔
- Promise.allSettled(): یہ ہر promise کے مکمل ہونے کا انتظار کرتا ہے۔ یہ نتائج واپس کرتا ہے چاہے کچھ ٹاسک ناکام ہی کیوں نہ ہو جائیں۔
خلاصہ:
- Promise: ایک asynchronous رزلٹ ہینڈلر۔
- resolve: کامیابی کی نشاندہی کرتا ہے۔
- reject: ناکامی کی نشاندہی کرتا ہے۔
- async/await: Promises لکھنے کا ایک صاف ستھرا طریقہ۔
- Promise.all: پہلی error پر رک جاتا ہے۔
- Promise.allSettled: تمام ٹاسک مکمل کرتا ہے۔
