Jak rozumiem, obietnica jest czymś, co może rozwiązać() lub odrzucić(), ale byłem zaskoczony, aby dowiedzieć się, że kod w obietnicy jest nadal wykonywany po wywołaniu rozstrzygnięcia lub odrzucenia.Dlaczego program javascript ES6 obiecuje kontynuować wykonywanie po rozwiązaniu?
Rozważałem rozwiązanie lub odrzucenie jako przyjazną asynchroniczną wersję wyjścia lub powrotu, która zatrzymałaby natychmiastowe wykonywanie wszystkich funkcji.
Może ktoś wyjaśnić, dlaczego za Poniższy przykład pokazuje console.log czasami po wywołaniu rozwiązać myśl:
var call = function() {
return new Promise(function(resolve, reject) {
resolve();
console.log("Doing more stuff, should not be visible after a resolve!");
});
};
call().then(function() {
console.log("resolved");
});
uzasadnione pytanie, ale potem znowu, JS tylko jedno oświadczenie wykonuje po kolei jak powiesz do niego do. 'resolve()' nie jest instrukcją sterującą JS, która w magiczny sposób miałaby efekt 'return', jest po prostu wywołaniem funkcji i tak, wykonanie jest kontynuowane po tym. –
To jest dobre pytanie i nawet po przeczytaniu wszystkich odpowiedzi nie jestem pewien co do najlepszych praktyk ... –