[30 Days of JS] Memoize / Add two promises

2025. 5. 14. 09:13개인활동/코테

반응형

/**
 * @param {Function} fn
 * @return {Function}
 */
function memoize(fn) {
    const cache = new Map();

    return function (...args) {
        const key = JSON.stringify(args);
        if (cache.has(key)) {
            return cache.get(key);
        }

        const result = fn(...args);
        cache.set(key, result);
        return result;
    };
}
  • Map()
    • input으로 들어온 것들을 pair로 만들어서 순서대로 기억하도록 만들어 줌
  • JSON.stringify()
    • 입력받은 파라미터를 JSON으로 변환
  • cache를 이용해 key값이 존재하는지 확인
    • 있다면 해당 key값을 이용해 value 추출
    • 없다면 함수를 호출해 계산 후 key-value 쌍을 만들어 cache에 쌓음

/**
 * @param {Promise} promise1
 * @param {Promise} promise2
 * @return {Promise}
 */
var addTwoPromises = async function(promise1, promise2) {
    return Promise.all([promise1, promise2]).then(([val1, val2]) => val1 + val2);
};
  • Promise
    • time out의 시간이 지난 뒤 입력받은 정수를 반환
    • 반환한 수를 모두 받아 summation 후 최종 반환값 도출
    • all() : all promises are fulfilled
    • then() : bring fulfilled or rejected result

 

 

https://joshua1988.github.io/web-development/javascript/promise-for-beginners/

 

자바스크립트 Promise 쉽게 이해하기

(중급) 자바스크립트 입문자를 위한 Promise 설명. 쉽게 알아보는 자바스크립트 Promise 개념, 사용법, 예제 코드. 예제로 알아보는 then(), catch() 활용법

joshua1988.github.io

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

반응형