[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
반응형
'개인활동 > 코테' 카테고리의 다른 글
[30 Days of JS] Interval Cancellation / Promise Time Limit (0) | 2025.05.18 |
---|---|
[30 Days of JS] Sleep / Timeout Cancellation (0) | 2025.05.15 |
[30 Days of JS] Return length of arguments passed / (0) | 2025.05.11 |
[30 Days of JS] Array reduce transformation / Function composition (0) | 2025.05.10 |
[30 Days of JS] Apply Transform Over Each Element in Array / Filter Elements from Array (0) | 2025.05.09 |