Что вам нужно понять, так это то, что async / await не заставляет ваш код работать синхронно, но давайте вы напишете его так, как будто это есть:
Вкратце: функция с async перед ней буквально выполняется асинхронно, отсюда и ключевое слово «async». И ключевое слово "await" заставит эту строку, которая использует его внутри этой асинхронной функции, ждать обещания во время его выполнения. Таким образом, хотя строка ожидает, вся функция по-прежнему выполняется асинхронно, если только вызывающий объект этой функции не «ожидает» ...
Более подробно объясняется: когда вы помещаете async перед функцией, на самом деле она заставляет ее возвращать обещание с тем, что эта функция возвращает внутри него. Функция выполняется асинхронно, и при выполнении оператора return обещание разрешает возвращаемое значение.
Это означает, что в вашем коде:
const getResult = async () => {
return await myFun();
}
Функция getResult () вернет обещание, которое разрешится после завершения выполнения. Таким образом, строки внутри функции getResult () выполняются асинхронно, если только вы не укажете функции, вызывающей getResult (), «ждать» и для нее. Внутри функции getResult () вы можете сказать, что она должна ждать результата, что заставляет выполнение getResult () ждать, пока она не разрешит обещание, но вызывающий getResult () не будет ждать, если вы также не скажете вызывающей стороне `` ждать '.
Таким образом, решение будет называть либо:
getResult().then(result=>{console.log(result)})
Или при использовании в другой функции вы можете просто снова использовать "ожидание"
async callingFunction(){
console.log(await(getResult());
}
person
Pim_nr_47
schedule
30.05.2019