aysn c функции не возвращают значение, они возвращают Promise
, поэтому вы не можете получить значение из них, пока не дождетесь их, это может быть сделано различными способами, ключевое слово await - это проще всего, и внутри вашего асин c кода вы всегда можете вызвать функцию syn c
async useServerData()
{
result = await get_server_resource();
console.log(result);
processServerResource(result)
}
processServerResource(resource)
{
do Something
}
. Преимущество этого состоит в том, что вы не блокируете свой код
, в противном случае вы можете использовать метод для установки обратного вызова, который вы хотите вызывать при завершении
get_server_resource().then(processServerResource);
, действительно плохой вариант - объявить результат вне рамок вашего обещания, а затем продолжать проверять, установлен ли он
let result = null;
let main = async () => {
result = await get_server_resource();
console.log(result);
}
main();
while(result ===null)
{
}
processServerResource(result)
опять же это не рекомендуемое решение
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Methods