Wpis z mikrobloga

#naukaprogramowania #javascript
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
  • 3
  • Odpowiedz
@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.
  • Odpowiedz