"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التعامل مع قيم إرجاع MySQL بشكل غير متزامن في Node.js مع الوعود؟

كيفية التعامل مع قيم إرجاع MySQL بشكل غير متزامن في Node.js مع الوعود؟

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

How to Handle MySQL Return Values Asynchronously in Node.js with Promises?

الاستفادة من الوعود لمعالجة قيم إرجاع MySQL في Node.js

عند الانتقال من Python إلى Node.js، فإن الطبيعة غير المتزامنة لـ Node.js. يمكن لـ Js تقديم تحديات. فكر في سيناريو تحتاج فيه إلى إرجاع قيمة من دالة MySQL، مثل getLastRecord(name).

تقليديًا، يستخدم Node.js عمليات الاسترجاعات للعمليات غير المتزامنة. ومع ذلك، للتعامل مع الطبيعة غير المتزامنة لـ getLastRecord()، سنستفيد من الوعود.

لتنفيذ الوظيفة باستخدام Promise:

function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    // Setup MySQL connection and query
    // ...

    connection.query(query_str, query_var, (err, rows, fields) => {
      if (err) {
        return reject(err); // Handle error
      }
      resolve(rows); // Resolve with results
    }); // Callback function
  });
}

للتعامل مع القيمة التي تم إرجاعها، يمكنك ربط عمليات رد الاتصال .then() و .catch() بالوعد:

getLastRecord('name_record')
  .then((rows) => {
    // Handle returned rows here
    console.log(rows);
  })
  .catch((err) => {
    // Handle errors here
    console.log(err);
  });

يمكنك أيضًا تنفيذ التحقق الشرطي:

getLastRecord('name_record')
  .then((rows) => {
    if (rows.length > 20) {
      console.log('action');
    }
  });

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

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3