Open utterances-bot opened 4 years ago
글 잘읽었습니다!
ES6에 등장한 Promise 를 이용한 방식은 new 연산자와 함께 호출한 Promise 의 인자로 넘겨주는 콜백 함수는 호출할 때 바로 실행되지만
그 내부에 resolve 또는 reject 함수를 호출하는 구문이 있을 경우 둘 중 하나가 실행되기 전까지는 then 또는 catch 구문으로 넘어가지 않는다.
Example 3. Async / await with Error Handler Factory
JS 의 일급함수의 특징을 이용하여 다음과 같이 에러 핸들링 할 수 있다.
const myPromise = new Promise((resolve, reject)=> {
setTimeout(()=> reject('ERROR 🤯'), 1000)
});
const testPromise = async () => {
const data = await myPromise;
};
// errorHandler 는 함수를 인자로 받아온다.
const errorHandler = function(fn) {
return function (...params) {
// error 를 catch 하여 반환한다.
return fn(...params).catch(function (err) {
console.log(err);
})
}
};
// ES6 로 간결하게 표현하면
const errorHandler2 = (fn) => (...params) =>
fn(...params).catch((err)=> console.warn('ERROR', err));
errorHandler2(testPromise)();
디자인 패턴을 알고싶게하는 글이네요!
Vanilla JavaScript II | JS Blog
JeongShin 의 코딩 블로그 👨🏻💻
https://jeongshin.github.io/JeongShin_Blog/TIL/study/JavaScript2.html