오늘은 모던 JavaScript 튜토리얼에서 프라미스화에 대해 공부했다. 작성한 질문은 다음과 같다.
프라미스화란 콜백을 받는 함수를 프라미스를 반환하는 함수로 변경하는 것이다. 예를 들어, 경로를 인자로 받아 script를 호출해주는 콜백 함수가 있다고 가정해보자.
function loadScript(src, callback) {
let script = document.createElement('script');
script.src = src;
script.onload = () => callback(null, script);
script.onerror = () => callback(new Error(`${src}를 불러오는 도중에 에러가 발생했습니다!`);
document.head.append(script);
}
이 함수를 프라미스화하면 동일하게 동작하면서 callback을 제외한 src만 인수로 받아야 하고, 무엇보다 가장 중요한 프라미스를 반환해야 한다.
let loadScriptPromise = function(src) {
return new Promise((resolve, reject) => {
loadScript(src, (err, script) => {
if (err) reject(err)
else resolve(script);
});
})
}
다음과 같은 과정이 '프라미스화'다.
'TIL' 카테고리의 다른 글
TIL - 20220811 (0) | 2022.08.11 |
---|---|
TIL - 20220810 (0) | 2022.08.10 |
TIL - 20220807 (0) | 2022.08.07 |
TIL - 20220806 (0) | 2022.08.06 |
TIL - 20220805 (0) | 2022.08.05 |