Я запускаю следующий код:
let asyncFunction = async () => {
console.log("hello world")
return Promise.resolve("resolution");
}
let returnValue = asyncFunction();
console.log(returnValue)
В этом журнале "привет мир", а затем "Обещание {}".Мои вопросы:
1) Тот факт, что «hello world» регистрируется первым, указывает на то, что если сделать asyncFunction асинхронной функцией, она не будет выполняться асинхронно.Если бы он выполнялся асинхронно, он был бы помещен в очередь выполнения и не запускался до тех пор, пока основная функция не вышла из стека.то есть "console.log (returnValue)" будет запущен первым.Правильно ли я по этому поводу, что добавление «асинхронный» не делает функцию фактически выполняется асинхронно?
2) Если это так, что asyncFunction не выполняется асинхронно, то в строке «let returnValue = asyncFunction (); ", asyncFunction должна выполняться до того, как ее возвращаемое значение будет присвоено returnValue.Тот факт, что returnValue содержит «Promise {}», указывает, что asyncFunction еще не была запущена, что согласуется с асинхронностью asyncFunction.Если я удаляю ключевое слово «async» из определения asyncFunction, оно возвращает «привет мир», а затем «Promise {'resolution'}».Итак, означает ли это, что использование асинхронной функции делает функцию асинхронной?
Любое понимание будет оценено.Спасибо!