Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возврат значения из функции async (https://javascript.ru/forum/misc/78032-vozvrat-znacheniya-iz-funkcii-async.html)

dmitri22 16.07.2019 15:26

Возврат значения из функции async
 
Приветствую, никак не могу понять, как возвратить значение из функции async. Возвращает промис. Взял пример в интернете
async function bar () {
    var text = "Hello";
    return text;
}

var test = bar()
                        
test.then((value) => console.log(value));

В консоль выводит "Hello", но как это "Hello" закинуть в переменную, чтобы можно было с ней в дальнейшем работать?

Если выполнить, что-то типа
var result = test.then((value) => console.log(value));
console.log(result);

то выдаёт
Promise { <pending> }


или
var result;
test.then((value) => result = value);
console.log(result);

то выдаёт
undefined

Promise { <pending> }

Stownheidg 18.07.2019 03:18

(async () => {
	async function bar () {
        var text = "Hello";
        return text;
    }

	var test = await bar()
                        
	console.log(test)
})()

Malleys 18.07.2019 20:31

Цитата:

Сообщение от dmitri22
В консоль выводит "Hello", но как это "Hello" закинуть в переменную, чтобы можно было с ней в дальнейшем работать?

Вон у вас в примере она так и так в переменной...

async function bar() {
    var text = "Hello";
    return text;
}

var test = bar()
                        
test.then(value => {
    // работаю с переменной value
    console.log(value);
});


Часовой пояс GMT +3, время: 21:54.