비동기 JavaScript를 사용하면 작업을 메인 스레드와 독립적으로 실행할 수 있으므로 애플리케이션의 응답성과 효율성이 유지됩니다. 이는 API 호출, 파일 읽기 또는 지연과 같은 작업을 처리하는 데 특히 중요합니다.
console.log("Start"); console.log("End"); // Output: // Start // End
console.log("Start"); setTimeout(() => { console.log("Async Task"); }, 2000); console.log("End"); // Output: // Start // End // Async Task
콜백은 비동기 작업이 완료된 후 실행되는 다른 함수에 인수로 전달되는 함수입니다.
예:
function fetchData(callback) { setTimeout(() => { callback("Data fetched!"); }, 2000); } fetchData((data) => { console.log(data); // Output: Data fetched! });
단점:
Promise는 현재, 미래에 사용할 수 있거나 전혀 사용할 수 없는 가치를 나타냅니다.
약속 상태:
약속 만들기:
const fetchData = new Promise((resolve, reject) => { setTimeout(() => { resolve("Data fetched!"); }, 2000); }); fetchData.then((data) => { console.log(data); // Output: Data fetched! });
오류 처리:
fetchData .then((data) => console.log(data)) .catch((error) => console.error(error));
async 및 wait는 promise 작업 시 더 읽기 쉬운 구문을 제공합니다.
예:
async function fetchData() { const data = await new Promise((resolve) => { setTimeout(() => resolve("Data fetched!"), 2000); }); console.log(data); // Output: Data fetched! } fetchData();
오류 처리:
async function fetchData() { try { const data = await new Promise((resolve, reject) => { reject("Error fetching data!"); }); console.log(data); } catch (error) { console.error(error); // Output: Error fetching data! } } fetchData();
Fetch API는 HTTP 요청을 수행하는 현대적인 방법입니다.
async function getData() { const response = await fetch("https://jsonplaceholder.typicode.com/posts/1"); const data = await response.json(); console.log(data); } getData();
이벤트 처리의 비동기 동작.
document.getElementById("button").addEventListener("click", () => { setTimeout(() => { console.log("Button clicked!"); }, 1000); });
지연을 위해 setTimeout 및 setInterval을 사용합니다.
setTimeout(() => console.log("Timeout executed!"), 2000);
이벤트 루프는 JavaScript에서 비동기 작업을 관리하는 메커니즘입니다. 작업은 다음 순서로 대기열에 추가되고 실행됩니다.
console.log("Start"); console.log("End"); // Output: // Start // End
오류 처리를 잊어버린 경우:
메인 스레드 차단:
콜백 지옥:
Technique | Description |
---|---|
Callbacks | Functions executed after async tasks. |
Promises | Chained mechanism for async tasks. |
Async/Await | Cleaner syntax for handling promises. |
응답성이 뛰어나고 효율적인 웹 애플리케이션을 만드는 데는 JavaScript의 비동기 프로그래밍을 이해하고 활용하는 것이 중요합니다. 콜백, Promise 및 async/await를 마스터함으로써 개발자는 비동기 작업을 효과적으로 관리할 수 있습니다.
안녕하세요. 저는 Abhay Singh Kathayat입니다!
저는 프론트엔드와 백엔드 기술 모두에 대한 전문 지식을 갖춘 풀스택 개발자입니다. 저는 효율적이고 확장 가능하며 사용자 친화적인 애플리케이션을 구축하기 위해 다양한 프로그래밍 언어와 프레임워크를 사용하여 작업합니다.
제 비즈니스 이메일(kaashshorts28@gmail.com)로 언제든지 연락주세요.
위 내용은 비동기 JavaScript 마스터하기: 콜백, 약속 및 Async/Await의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!