Aktywne Wpisy
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Darthal +56
Nie daje rady tak żyć. Nie mam rodziny, przyjaciół, dziewczyny, dobrego wykształcenia, samochodu. Jestem sam, zwykłym zerem. Małe miasteczko w którym żyje tętni życiem. Wskoczyłem na rower i jeździłem na nim przez kilka godzin obserwując jak ludzie normalnie żyją. Jak chodzą na spacery, jak w sklepie biorą piwa i przekąski na wieczór bo piątek, jakieś dziewczyny rozmawiały o tym że idą wieczorem do kina i będzie super. Obok matka z dwoma kilku
console.log("1");
myFunction().then(()=>console.log("4"));
console.log("3");
async function myFunction(){await console.log("2"); }
Ktoś wie czemu funkcja asychroniczna wykona sie przed console.log("3");?
await console.log("2");
nie jest asynchroniczne więc nie ma czekania w wykonywaniu tej funkcji więc order jest prawidłowy. sama myFunction jest i metoda .then jest asynchroniczna
Jakbyś zrobił
async function test() {
await Promise.resolve('aaa'); //faktyczny promis
console.log('2');
}
console.log("1");
myFunction().then(()=>console.log("4"));
console.log("3");
async function myFunction(){await test(); }
Komentarz usunięty przez autora
console.log("1");
Odpala się standardowa synchroniczna funkcja
myFunction().then(()=>console.log("4"));
Odpalasz funkcje myFunction, funkcja jest asynchroniczna, ale wszystko co się w niej dzieje jest synchroniczne więc jest wykonywane od razu, promise się wykonuje i dodaje odpalenie .then na koniec kolejki funkcji oczekujących aż stos się opróżni
console.log("3");
Odpala się synchroniczna funkcja
Stos jest pusty sprawdzamy czy w kolejce jest coś do wykonania
.then(()=>console.log("4"));
jest funkcja którą można wykonać (resolved)
Najprościej jak się da to opisać to samo odpalenie funkcji
myFunction()
jest synchroniczne i wszystko co się w tej funkcji dzieje do momentu w którym nie ma czekania na inne promisy jest synchroniczne, dodawanie await przed funkcjami synchronicznymi nie zmienia ich wywołania, a jedynie zmienia moment wywołania następnych asynchronicznych tu masz przykład
console.log("1");
myFunction().then(()=>console.log("6"));
console.log("3");
async function myFunction(){
await console.log('2');
await console.log('4');
await console.log('5');
}
Powinno być
1. rzeczy wywolane przez nextTick
2. Promisy
więcej info tutaj -> https://www.builder.io/blog/visual-guide-to-nodejs-event-loop