목록Promise (3)
코딩쌀롱
마이크로 태스크, 매크로 태스크, PromiseJobs 얘네들이 도대체 뭔가..했는데 이제 좀 알 것 같다. 기쁘다!🤪 ✱ 용어 정리 용어 정리를 하자면, 매크로 태스크 큐는 이벤트 루프를 설명할 때 나오는 태스크 큐(콜백 큐)와 같다. 그리고 PromiseJobs큐는 마이크로 태스크 큐와 같고, PromiseJobs큐는 ECMA, 마이크로 태스크 큐는 V8엔진에서 부르는 이름만 다른 것이다. 매크로 태스크 큐 = 태스크 큐 = 콜백 큐 마이크로 태스크 큐 (V8) = PromiseJobs 큐 (ECMA) ✱ 마이크로 태스크 큐, 매크로 태스크 큐 이벤트 루프의 동작 원리에 대해서 공부할 때 아래와 같은 자료들을 자주 보게 되는데, 이 때 콜백 큐(태스크 큐)는 하나의 큐처럼 보이지만 실제로는 여러 개의..
Promise에 대해서는 이전 글에 작성하였습니다. ✱ Promise → async/await function findAndSaveUser(Users) { Users.findOne({}) .then(user => { user.name = 'eve'; return user.save(); }) .then(user => { return Users.findOne({ gender: 'f' }); }) .then(user => { // 생략 }) .catch(err => { console.error(err); }); } 위 코드를 async/await로 바꿔보면 (에러 처리부분은 이 다음 코드에) async function findAndSaveUser(Users) { let user = await Users.fin..
✱ Promise const promise = new Promise((resolve, reject) => {...}); new Promise()로 프로미스를 생성할 수 있으며, 그 내부에 resolve, reject를 매개변수로 갖는 콜백함수(executor)를 넣는다. 이렇게 만든 promise 변수에 then과 catch 메서드를 붙일 수 있다. 프로미스 내부에서 비동기 작업이 성공적으로 이행됐으면 resolve가 호출되고, then이 실행된다. 작업에서 오류가 발생한 경우 reject가 호출되고, catch가 실행된다. finally는 성공/실패 여부와 상관없이 실행된다. const condition = true; // true면 resolve, false면 reject const promise =..