الرجوع الي الدرس

استدعاء غير متزامن من غير متزامن

We have a “regular” function called f. How can you call the async function wait() and use its result inside of f?

async function wait() {
  await new Promise((resolve) => setTimeout(resolve, 1000));

  return 10;
}

function f() {
  // ...what should you write here?
  // we need to call async wait() and wait to get 10
  // remember, we can't use "await"
}

ملاحظة. المهمة بسيطة من الناحية الفنية ، ولكن السؤال شائع جدًا للمطورين الجدد على عدم المزامنة / الانتظار.

هذا هو الحال عند معرفة كيف يعمل في الداخل مفيد.

ما عليك سوى التعامل مع استدعاء غير متزامن '' على أنه وعد وإرفاق ثم ‘’ به:

async function wait() {
  await new Promise(resolve => setTimeout(resolve, 1000));

  return 10;
}

function f() {
  // shows 10 after 1 second
  wait().then(result => alert(result));
}

f();