اذهب إلى المحتوى

السؤال

نشر (معدل)

هل في أمر يخليني اطلب من الكائن يتوجه لمكان ثم يتوقف ثم يسأل ثم ينتظر, باختصار هل هناك أمر (ثم) في البرمجة؟؟

تم التعديل في بواسطة Hikmat Jaafer
توضيح العنوان ونص السؤال

Recommended Posts

  • 0
نشر

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

إذا لم يكن سؤال خاص بإحدى دروس الدورات يرجى توضيح السؤال أكثر ما هو الكائن الذي تتحدث عنه وما هي لغة البرمجة التي تعمل عليها.
 

  • 0
نشر

ليس هناك أمر مباشر اسمه "ثم"، ولكن يمكن تحقيق ذلك باستخدام الوعود أو Promises في JavaScript، وهي تسمح بتنفيذ الكود بالتتابع، و يمكن استخدام async/await لتسهيل كتابة تسلسل الخطوات على سبيل المثال:

async function moveAndAsk() {
    await moveToLocation(); 
    await stop();           
    await askQuestion();    
    await waitForResponse();
}

و بعدها يمكنك إعداد سلسلة من الأوامر بتقنيات مثل setTimeout:

function performActions() {
    moveToLocation();
    setTimeout(() => {
        stop();
        setTimeout(() => {
            askQuestion();
            setTimeout(() => {
                waitForResponse();
            }, 1000);
        }, 1000);
    }, 1000);
}

كما يوجد مكتبات مثل async.js يمكن أن تساعد في التحكم بالتسلسل، خاصة في الكود الذي يعتمد على الأحداث أو ردود الفعل.

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

  • 0
نشر

مرحباً ،

انت تبحث عن شيء يتيح لك تنفيذ أمر بعد حدوث أمر أخر ( سلسلة عمليات متتابعة ) ، اذا كان هذا ما تقصده من ( ثم ) ، فنعم يوجد عدة طرق:
في JavaScript ، يمكنك تنفيذ سلسلة من الأوامر المتتابعة باستخدام الوعود (Promises) مع الدالة .then() ، مما يتيح لك التحكم في ترتيب تنفيذ العمليات بالتتابع.

إليك كيف يمكن أن يبدو الكود في حالة تريد للكائن أن:

  1. يتحرك إلى مكان معين.
  2. يتوقف.
  3. يسأل سؤالاً (أو يقوم بعملية).
  4. ينتظر استجابة.
function moveToLocation() {
  return new Promise((resolve) => {
    console.log("moving...");
    setTimeout(() => resolve("Done"), 1000); // هنا تأخير 1 ثانية كمثال
  });
}

function stop() {
  return new Promise((resolve) => {
    console.log("Stop.");
    setTimeout(resolve, 500); // توقف لمدة 0.5 ثانية
  });
}

function askQuestion() {
  return new Promise((resolve) => {
    console.log("Ask Question...");
    setTimeout(() => resolve("Done"), 1000);
  });
}

function waitForResponse() {
  return new Promise((resolve) => {
    console.log("Wating...");
    setTimeout(() => resolve("Done"), 2000);
  });
}

// السلسلة الكاملة  
moveToLocation()
  .then(stop)
  .then(askQuestion)
  .then(waitForResponse)
  .then((response) => {
    console.log(response); 
  })
  .catch((error) => {
    console.error("error :", error);
  });
  • .then() يُستخدم لتحقيق التتابع بين العمليات.
  • Promise تتيح لك التحكم الكامل في توقيت كل عملية وانتظار العمليات السابقة قبل الانتقال إلى التي تليها.

 
بالإضافة إلى ذلك، يمكنك أيضاً استخدام async/await كما وضح المدرب شهاب ، لجعل الكود يبدو أقرب للغة العادية بدون الحاجة إلى .then:
 

async function performActions() {
  await moveToLocation();
  await stop();
  await askQuestion();
  const response = await waitForResponse();
  console.log(response);
}

performActions().catch((error) => console.error("error:", error));

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...