오늘 나는 비동기 작업을 처리하는 두 가지 방법의 차이점에 대한 나 자신의 무지에 직면했습니다. 그래서 나는 이 게시물을 쓰기 위해 읽고 연구하기로 결정했습니다. 그리고 다른 개발자가 이 차이점을 더 잘 이해할 수 있도록 도와줄 수도 있습니다.
당시 저는 then()이 해결된 데이터를 가져오는 반면, 해결 및 거부는 성공 또는 오류로 끝나는 데 사용된다는 점에서 둘 다 동일한 작업을 수행한다는 것을 어느 정도 설명하는 방법을 알고 있었습니다. Async/await는 다음 단계로 넘어가기 전에 결과를 기다리고 있었습니다. 완전히 틀린 것은 아니지만 훨씬 더 나은 방법으로 설명할 수 있습니다.
Promise는 이름에서 알 수 있듯이 세 가지 주요 상태를 거치는 데이터 반환 "Promise"입니다.
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."); } });
이것은 async/await 이전에 Promise를 처리하는 가장 일반적인 방법이었습니다. then(), catch() 및 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. });
async라고 표시된 함수는 자동으로 Promise를 반환하고 await는 Promise가 해결될 때까지 실행을 "일시 중지"하는 데 사용됩니다.
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();
Promise 연결로 인해 코드가 매우 중첩될 수 있으며, 특히 여러 then()을 연속해서 사용할 경우 읽기가 더 어려워집니다.
Async/await를 사용하면 동기 코드와 더 유사한 방식으로 비동기 코드를 작성할 수 있으므로 논리를 더 쉽게 읽고 이해할 수 있습니다. 특히 여러 비동기 작업을 처리해야 하는 경우 코드가 더욱 깔끔해집니다.
또한 async/await와 함께 try/catch를 사용하여 오류를 처리하는 방법은 Promise에서 catch를 사용하는 것보다 더 직관적입니다.
위 내용은 Promise Chaining과 Aync/await의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!