"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تحكم في وعودك باستخدام JavaScript

تحكم في وعودك باستخدام JavaScript

تم النشر بتاريخ 2024-11-01
تصفح:156

Controla tus promesa con JavaScript

يعد التعامل مع العمليات غير المتزامنة في JavaScript أمرًا ضروريًا لإنشاء تطبيقات فعالة وسلسة. وهنا يأتي دور الوعود. هل تساءلت يومًا عن كيفية منع حظر التعليمات البرمجية الخاصة بك أثناء انتظار الرد من الخادم؟ أو ربما كيف يمكنك تنفيذ مهام معينة فقط بعد انتهاء مهمة أخرى؟ حسنًا، الوعود في JavaScript هي الحل الذي كنت تبحث عنه.

في هذه المقالة، سنستكشف ماهية الوعود، وكيفية عملها، وكيف يمكنها تحسين تدفق تطبيقك. دعونا نتعمق في التفاصيل.

ما هو الوعد في جافا سكريبت؟

الوعد في JavaScript هو كائن يمثل الإكمال (أو الفشل) النهائي لعملية غير متزامنة وقيمتها الناتجة. بمعنى آخر، الوعد هو وسيط يتعامل مع تنفيذ التعليمات البرمجية غير المتزامنة ويسمح لك بالعمل مع القيم التي لم تكن معروفة بعد في وقت كتابة التعليمات البرمجية.

الملامح الرئيسية للوعود:

  • معلق: الحالة الأولية، حيث لم تنتهي العملية غير المتزامنة بعد.
  • تم الحل (تم التنفيذ): اكتملت العملية غير المتزامنة بنجاح وتم الحصول على نتيجة.
  • تم الرفض: فشلت العملية غير المتزامنة وتم تقديم السبب أو الخطأ.

تسمح دورة حياة الوعد هذه بمعالجة العمليات غير المتزامنة بشكل أكثر وضوحًا وكفاءة، وتجنب "جحيم رد الاتصال".

لماذا استخدام الوعود؟

تعد الوعود مفيدة بشكل خاص عند العمل مع الطلبات المقدمة إلى الخوادم. تخيل أنك قمت بتقديم طلب HTTP للحصول على البيانات. يمكن أن يختلف وقت الانتظار، ولا تريد أن يتجمد تطبيقك أثناء وصول الرد. يتيح استخدام الوعود استمرار تنفيذ التعليمات البرمجية الخاصة بك دون انتظار، مما يؤدي إلى تحسين الأداء العام لتطبيقك.

بالإضافة إلى ذلك، تنطبق الوعود في حالات أخرى، مثل:

  • معالجة الملف: يمكنك الانتظار حتى يتم تحميل الملف أو معالجته قبل تشغيل مهمة أخرى.
  • تعديلات DOM: إذا كنت بحاجة إلى التأكد من اكتمال تغييرات معينة في الواجهة قبل متابعة العمليات الأخرى.

تسمح لك الوعود أيضًا بربط عمليات متعددة غير متزامنة معًا بطريقة أكثر قابلية للقراءة والصيانة.

كيفية استخدام الوعود في جافا سكريبت

لإنشاء وعد، يتم استخدام مُنشئ الوعد، لتمرير دالة ذات وسيطتين: الحل والرفض.

let miPromesa = new Promise((resolve, reject) => {
    // Simulación de una operación asíncrona
    let exito = true;

    if (exito) {
        resolve("Operación exitosa!");
    } else {
        reject("Ocurrió un error.");
    }
});

للتعامل مع نتيجة الوعد، يتم استخدام الأساليب .then() و .catch():

miPromesa
    .then((mensaje) => {
        console.log(mensaje); // "Operación exitosa!"
    })
    .catch((error) => {
        console.error(error); // "Ocurrió un error."
    });`

مزايا الوعود على عمليات الاسترجاعات

قبل تقديم الوعود، كان التعامل مع العمليات غير المتزامنة يتم في المقام الأول من خلال عمليات الاسترجاعات. ومع ذلك، قد يؤدي هذا إلى تعليمات برمجية يصعب متابعتها وصيانتها، خاصة عندما تكون عمليات رد الاتصال متعددة متداخلة، والمعروفة باسم "جحيم رد الاتصال".

مزايا الوعود:

  • سهولة القراءة: الكود أسهل في القراءة والمتابعة.
  • الصيانة: تسهل التعرف على الأخطاء ومعالجتها.
  • التسلسل: يمكنك تسلسل عمليات غير متزامنة متعددة بطريقة أكثر تنظيمًا.

الوعود مقابل عدم المزامنة/الانتظار

على الرغم من أن الوعود كانت بمثابة تحسن كبير على عمليات الاسترجاعات، إلا أن إدخال غير متزامن/انتظار في ECMAScript 2017 قد أدى إلى تبسيط بناء الجملة للتعامل مع العمليات غير المتزامنة.

async function obtenerDatos() {
    try {
        let response = await fetch('https://jsonplaceholder.typicode.com/posts/1');
        let data = await response.json();
        console.log(data);
    } catch (error) {
        console.error('Error:', error);
    }
}

مع عدم التزامن/الانتظار، يصبح الكود خطيًا أكثر، مشابهًا للتعليمات البرمجية المتزامنة، ولكنه لا يزال غير متزامن تحت الغطاء. ومع ذلك، من المهم ملاحظة أن المزامنة/الانتظار لا تزال تستخدم الوعود في جوهرها، لذا فإن فهم كيفية عمل الوعود يعد أمرًا أساسيًا لإتقان استخدام المزامنة/الانتظار.

خاتمة

تعد الوعود في JavaScript أداة قوية للتعامل مع العمليات غير المتزامنة دون تعقيد التعليمات البرمجية الخاصة بك من خلال عمليات الاسترجاعات المتعددة. من الطلبات إلى الخوادم إلى المهام الأكثر تعقيدًا داخل تطبيقك، تسمح لك الوعود بكتابة تعليمات برمجية أكثر وضوحًا وأكثر قابلية للقراءة وأسهل في الحفاظ عليها.

بغض النظر عما إذا كنت تقوم بإنشاء تطبيق ويب بسيط أو نظام أكثر تعقيدًا، فإن تعلم كيفية التعامل مع الوعود أمر ضروري لتحسين أداء التعليمات البرمجية الخاصة بك.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/bearpoint/controla-tus-promesa-con-javascript-51c8?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3