Heute wurde ich mit meiner eigenen Unkenntnis über den Unterschied zwischen diesen beiden Arten des Umgangs mit asynchronen Vorgängen konfrontiert, also beschloss ich, diesen Beitrag zu lesen und zu recherchieren – als Erinnerung an mich selbst und wer weiß, vielleicht helfen Sie anderen Entwicklern, diesen Unterschied besser zu verstehen.
Damals wusste ich mehr oder weniger, wie ich erklären sollte, dass beide das Gleiche tun, wobei then() die aufgelösten Daten liefert, während „resolve“ und „reject“ verwendet wurden, um mit Erfolg oder Fehler zu enden. Async/await musste auf das Ergebnis warten, bevor mit dem nächsten Schritt fortgefahren wurde. Es war nicht ganz falsch, aber es könnte viel besser erklärt werden.
Versprechen ist, wie der Name schon sagt, ein Datenrückgabe-„Versprechen“, das drei Hauptzustände durchläuft:
const minhaPromise = new Promise((resolve, reject) => { let sucesso = true; // Apenas um exemplo condicional if (sucesso) { resolve("Operação concluída com sucesso!"); } else { reject("Ocorreu um erro na operação."); } });
Dies war vor async/await die gebräuchlichste Art, mit Promises umzugehen. Wir verwenden die Methoden then(), Catch() und Finally().
minhaPromise .then((mensagem) => { console.log(mensagem); // "Operação concluída com sucesso!" }) .catch((erro) => { console.error(erro); // Se der erro, isso será executado. }) .finally(() => { console.log("Finalizando a execução da Promise"); // Sempre será executado. });
Eine mit async gekennzeichnete Funktion gibt automatisch ein Promise zurück und await wird verwendet, um die Ausführung zu „pausieren“, bis das Promise aufgelöst ist.
async function buscarDados() { try { const response = await fetch("https://jsonplaceholder.typicode.com/todos/1"); const data = await response.json(); console.log("Dados recebidos:", data); } catch (error) { console.error("Erro ao buscar dados:", error); } } buscarDados();
Die Verkettung von Versprechen kann dazu führen, dass der Code sehr verschachtelt wird, insbesondere wenn wir mehrere then() hintereinander verwenden, was das Lesen erschwert.
Async/await ermöglicht es Ihnen, asynchronen Code auf eine Weise zu schreiben, die synchronem Code ähnlicher ist, wodurch die Logik leichter zu lesen und zu verstehen ist. Der Code wird sauberer, insbesondere wenn wir mehrere asynchrone Vorgänge verarbeiten müssen.
Darüber hinaus ist die Art und Weise, Fehler mithilfe von try/catch mit async/await zu behandeln, intuitiver als nur die Verwendung von „catch“ in Promises.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Promise Chaining und Aync/await. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!