Javascript Promis – انجمن DEV

وعده های جاوا اسکریپت یکی از راه های راحت برای مدیریت عملیات ناهمزمان است. وعده ها بیانگر ارزش هایی هستند که ممکن است در آینده محقق شوند یا شکست بخورند. آنها برای مدیریت نتایج عملیات ناهمزمان و کاهش مشکلات مربوط به توابع برگشت تماس استفاده می شوند.
میز وعده
نوید یاراتیش
یک سازنده Promise برای ایجاد یک وعده در جاوا اسکریپت استفاده می شود.
let myPromise = new Promise((resolve, reject) => {
let success = true; // Bu yerda sizning asinxron operatsiyangiz bo'lishi mumkin
if (success) {
resolve("Bu operatsiya muvaffaqiyatli tugadi!");
} else {
reject("Bu operatsiya muvaffaqiyatsiz tugadi.");
}
});
توابع حل و فصل و رد وعده های جاوا اسکریپت برای کنترل نتیجه عملیات ناهمزمان استفاده می شود.
برطرف کردن
تابع حل زمانی فراخوانی می شود که وعده با موفقیت اجرا شود. این تابع یک مقدار را به عنوان آرگومان می گیرد و سپس این مقدار به متد .then() ارسال می شود.
let Promise = new Promise((resolve, reject) => {
let success = true; // Bu yerda sizning asinxron operatsiyangiz bo'lishi mumkin
if (success) {
resolve("Bu operatsiya muvaffaqiyatli tugadi!");
}
});
در مثال بالا، اگر متغیر موفقیت درست باشد، تابع Resolution فراخوانی می شود و “این عملیات با موفقیت انجام شد!” ارزش خود را منتقل می کند.
خروجی نتیجه در cansole.log از طریق متد then:
Promise.then((result) => {
console.log(result); // "Bu operatsiya muvaffaqiyatli tugadi!" ni cansole.log da chiqaradi
});
رد کردن
تابع reject زمانی فراخوانی می شود که وعده ناموفق باشد. این تابع اطلاعات مربوط به یک خطا یا شکست را به عنوان آرگومان می گیرد و سپس این مقدار به متد ()catch ارسال می شود.
let mPromise = new Promise((resolve, reject) => {
let success = false; // Bu yerda sizning asinxron operatsiyangiz bo'lishi mumkin
if (!success) {
reject("Bu operatsiya muvaffaqiyatsiz tugadi.");
}
});
در مثال بالا، اگر متغیر موفقیت نادرست باشد، تابع reject فراخوانی می شود و “این عملیات انجام نشد.” ارزش خود را منتقل می کند.
mPromise
.then((result) => {
console.log(result); // Bu yerga kirmaydi keyingi blockga o'tadi
})
.catch((error) => {
console.error(error); // "Bu operatsiya muvaffaqiyatsiz tugadi." ni cansole.logda chop etadi
});