Jeśli mamy taki przykład funkcji asynchronicznej. To 1.Czy await działa na zasadzie, że czeka aż np. funkcja getUserData() zostanie wykonana i dopiero przechodzi dalej? 2. Czy w takiej konstrukcji tej funkcji verifyUser funkcje które mają await powinny też zostać zadeklarowane jako funkcje async??? Czyli funkcjaAsynch() { const zmienna = await innaFunckajAynchroniczna(); } czy to zależy od kontekstu i robi się tak lub tak
@NickciN: await tak na prawdę czeka na wykonanie Promisa, dlatego możesz zrobić np: await new Promise((resolve) => setTimeout(resolve, 1000)) czyli kiedy program dojdzie do tej linijki to poczeka sekundę zanim kontynuuje dalej.
Zapis await funkcjaPierwsza() mógłbyś równie dobrze zapisać jako const result = funkcjaPierwsza(); await result; i wynik byłby dokładnie ten sam.
async function verifyUser (username, passowrd) {
try {
const userData = await getUserData(username, passowrd);
const userRole = await getUserRole(userData);
const userPermissions = await getUserPermissions(userRole);
console.log(userPermissions);
} catch (error) {
console.error(error);
}
};
Jeśli mamy taki przykład funkcji asynchronicznej. To
1.Czy await działa na zasadzie, że czeka aż np. funkcja getUserData() zostanie wykonana i dopiero przechodzi dalej?
2. Czy w takiej konstrukcji tej funkcji verifyUser funkcje które mają await powinny też zostać zadeklarowane jako funkcje async??? Czyli
funkcjaAsynch() {
const zmienna = await innaFunckajAynchroniczna();
}
czy to zależy od kontekstu i robi się tak lub tak
1. Dokładnie
2. Await jest zarezerwowane tylko dla asynchronicznych funkcji, w zwykłej funkcji nie możesz użyć await
funkcjaPierwsza
funkcjaDruga
async funkcjaPierwsza() {
const cosTam =
awaittak na prawdę czeka na wykonanie Promisa, dlatego możesz zrobić np:await new Promise((resolve) => setTimeout(resolve, 1000))czyli kiedy program dojdzie do tej linijki to poczeka sekundę zanim kontynuuje dalej.Zapis
await funkcjaPierwsza()mógłbyś równie dobrze zapisać jakoconst result = funkcjaPierwsza(); await result;i wynik byłby dokładnie ten sam.