[javascript] 동시성 제어 연산자의 종류와 사용법은?
동시성 제어 연산자의 종류와 사용법은 다양합니다. 주로 사용되는 동시성 제어 연산자로는 Promise
, async/await
, 그리고 Generator
등이 있습니다.
-
Promise: Promise는 비동기 작업을 처리할 때 사용되는 객체입니다. Promise는 주어진 작업이 완료되었거나 실패했음을 나타냅니다. Promise 객체는 세 가지 상태를 가질 수 있습니다 - 대기 중(pending), 이행(fulfilled), 실패(rejected). Promise를 사용하면 비동기 작업을 순차적으로 처리할 수 있습니다.
const getData = () => { return new Promise((resolve, reject) => { // 비동기 작업 수행 if (작업 성공) { resolve(결과값); } else { reject(에러); } }); }; getData() .then(result => { // 작업 성공 시 처리 }) .catch(error => { // 작업 실패 시 처리 });
-
async/await:
async
와await
는 Promise를 사용하는 방식을 보다 간결하게 표현할 수 있는 문법입니다.async
키워드로 비동기 함수를 정의하고,await
키워드는 Promise가 이행될 때까지 기다린 뒤 그 결과를 반환합니다.const fetchData = async () => { try { const result = await getData(); // 작업 성공 시 처리 } catch (error) { // 작업 실패 시 처리 } }; fetchData();
-
Generator: Generator는 함수의 실행을 일시 중지하고 재개할 수 있는 기능을 제공합니다.
function*
문법을 사용하여 생성하며,yield
키워드를 통해 일시 중지 지점을 표시하고 값을 반환할 수 있습니다.function* generateData() { // 비동기 작업 수행 yield 결과값; } const generator = generateData(); const result = generator.next().value; // 작업 결과 처리
이러한 동시성 제어 연산자들은 비동기 작업을 보다 효율적으로 관리하고 코드를 간결하게 작성할 수 있도록 도와줍니다. 자세한 내용은 MDN web docs를 참고하시기 바랍니다.