zły tytuł, to nie ma nic wspólnego z React, tylko z tym, jak działają funkcje asynchroniczne JavaScript.
Ogólnie async/await to cukier składniowy na promisy. Tutaj @szok dobrze pisze - Poczytaj o acync/await i jak sie z tego korzyszta. (jeszcze przed polecam co to są Promise w JS)
. Ogólnie warto popracować na samych promisach (używając then
i dopiero później przejść na await
)
Niestety podczas wyświetlania danych za pomocą funkcji alert zamiast oczekiwanej wartości otrzymuje tylko tekst ,,[object Promise]".
Dokładnie tak ma działać async/await. Każda funkcja async zwróci ci obiekt Promise
.
Gdzie Promise
jest pewnym pudełkiem na wartość, która jeszcze się nie zrealizowała. A await
oraz .then()
to sposób na przeczekanie i wydobycie wartości z pudełka.
async function foo() {} // funkcja nie musi nic robić nawet, byleby miała `async`.
console.log(foo()); // wyświetli ci, że jest to Promise
I teraz. Co zrobić, żeby uzyskać wartość z Promise?
-
.then()
-
await
czyli robisz np.
kontrola_imie_nazwisko().then(value => {
console.log(value);
})
albo robisz await
:
(async () => {
console.log(await kontrola_imie_nazwisko());
})();