javascript wbr - العودة من الوعد ثم ()




2 Answers

عندما تعيد شيئًا من رد اتصال بعد ذلك () ، يكون هذا أمرًا سحريًا بعض الشيء. إذا قمت بإرجاع قيمة ، فسيتم استدعاء التالي () بعد ذلك بتلك القيمة. ومع ذلك ، إذا قمت بإرجاع شيء مشابه للوعود ، فحينئذٍ () تنتظره بعد ذلك ، ويتم استدعاؤها فقط عندما يستقر هذا الوعد (ينجح / يفشل).

عبر https://developers.google.com/web/fundamentals/getting-started/primers/promises#queuing_asynchronous_actions

tag in

لدي كود جافا سكريبت مثل هذا:

function justTesting() {
  promise.then(function(output) {
    return output + 1;
  });
}

var test = justTesting();

لقد حصلت دائمًا على قيمة غير محددة لاختبار var. أعتقد أن السبب في ذلك هو أن الوعود لم يتم حلها ، فهناك طريقة لإرجاع قيمة من الوعود؟




ما قمت به هنا هو أنني عدت بوعد من وظيفة justTesting. يمكنك بعد ذلك الحصول على النتيجة عند حل الوظيفة.

// new answer

function justTesting() {
  return new Promise((resolve, reject) => {
    if (true) {
      return resolve("testing");
    } else {
      return reject("promise failed");
   }
 });
}

justTesting()
  .then(res => {
     let test = res;
     // do something with the output :)
  })
  .catch(err => {
    console.log(err);
  });

أتمنى أن يساعدك هذا!

// old answer

function justTesting() {
  return promise.then(function(output) {
    return output + 1;
  });
}

justTesting().then((res) => {
     var test = res;
    // do something with the output :)
    }



Related

javascript promise