반응형 Programming/Javascript, Typescript28 Promise.all, 무엇이고 언제 사용해야 할까? 코드 리뷰 스터디에서 동료분으로부터 Promise.all의 존재를 알게 되었다. 들어본 적은 없었지만 설명해주신 걸 들어보니 복수의 요청을 한 번에 보내고, 프로미스도 전부 합쳐 한 번에 반환하는 핸들러였다. 하나라도 오류가 나면 Promise.all 전체가 거부되고 .catch가 실행된다. 해당 에러가 Promise.all 전체의 결과가 되는 거다. Promise.all(iterable) Promise.all() 메서드는 순회 가능한 객체에 주어진 모든 프로미스가 이행(fulfill)한 후, 혹은 프로미스가 주어지지 않았을 때 이행하는 Promise를 반환한다. 주어진 프로미스 중 하나가 거부하는경우, 첫 번째로 거절한 프로미스의 이유를 사용해 자신도 거부한다.(MDN 문서) const promise1.. Programming/Javascript, Typescript 2023. 3. 6. [JavaScript] new Date()로 생성된 시간을 한국 시간으로 바꾸기 최근 일하면서 특정 시간대에만 배너를 표시하는 작업을 한 일이 있었다. 당연히 쉽게 반영이 될 거라고 생각했는데, 실제 사이트에서는 마치 코드가 잘못된 것처럼 작동하지 않았다. 이유는 기업 서버가 미국(혹은 다른 나라)을 거쳐 가면서 new Date() 시간이 한국 시간이 아닌 다른 어딘가의 시간으로 출력됐던 것이었고, 이 때문에 항상 한국 기준 (UTC +8)으로 바꿔주는 작업이 필요했다. 소스코드 const now = new Date() // 서버 시간 기준 현재 로컬 시간 const GMTNow = now.getTime() + now.getTimezoneOffset() * 60 * 1000 // GMT 현재 시간 // now.getTime(): 1970년 1월 1일 00:00:00 GMT와 주어진 .. Programming/Javascript, Typescript 2023. 2. 18. [JavaScript] 화살표 함수 정의 전통적인 함수 표현보다 더 간편하게 함수를 작성할 수 있는 대안이다. 기본 형태 let func = (arg1, arg2, ...argN) => expression // 아래 함수 표현식의 축약 버전이다. let func = function(arg1, arg2, ...argN) { return expression; } // 인수가 하나도 없다면, 괄호를 비워 놓는다. 이 때 괄호는 생략 불가하다. let sayHi = () => alert("안녕하세요!") sayHi() 본문이 여러 줄인 화살표 함수는 '중괄호'와 'return'을 사용해야 한다. let sum = (a, b) => { let result = a + b retun result } alert(sum(1, 2)) // 3 + 화살표 함.. Programming/Javascript, Typescript 2023. 2. 9. [Javscript] window.scrollTo() 메서드 scrollTo는 document의 특정 좌표로 이동시켜주는 메서드다. 좌표의 숫자 단위는 픽셀이다. 숫자를 지정하면 직접 DOM 조작을 하지 않고 스크롤을 컨트롤할 수 있어 좋다. 내가 실제로 사용해 본 아래 예시처럼 behavior: smooth와 같이 움직임에 대한 옵션을 줄 수도 있다. 주의할 건 IE에서는 작동하지 않는다는 점이다. IE가 공식 지원 종료되면서 고려해야 하는 경우가 많이 줄어들기는 했겠지만, 만약 IE에서도 같은 동작을 하고 싶다면 우선 사용자의 브라우저 정보를 읽어 조건문 처리한 뒤, 비슷하지만 조금 다른 메서드를 사용해야 한다. const handleClick = () => { if (!window.scrollY) return window.scrollTo({ top: 0, b.. Programming/Javascript, Typescript 2023. 1. 3. [Javascript] reduce() 함수 회사에서 개발하던 중 리스트의 요소들을 누적하여 다시 return하고 싶은 경우가 있었다. 이를 테면 조각조각 떨어져 있는 URL 안의 요소들을 합치고 싶을 때다. 이럴 때는 map 함수가 아니라 reduce 함수를 쓰면 가장 효율적으로 구현할 수 있다.정의reduce() 함수는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환한다. 예시const array1 = [1, 2, 3, 4];// 0 + 1 + 2 + 3 + 4const initialValue = 0;const sumWithInitial = array1.reduce( (accumulator, currentValue) => accumulator + currentValue, initialValue);.. Programming/Javascript, Typescript 2023. 1. 2. [Javascript] constructor 싸피에서 잠시 OOP에 대해 배웠지만 초반에 매우 짧게 배우고 지나가 class 관련 개념이 부족함을 느낀다. Nest.js 역시 OOP를 도입하고 있어 모르는 용어들이 나오고 있는 것 같다. constructor란 클래스의 인스턴스 객체를 생성하고 초기화하는 특별한 메서드 constructor를 사용하면 다른 모든 메서드 호출보다 앞선 시점인, 인스턴스 객체를 초기화할 때 수행할 초기화 코드를 정의할 수 있다. class Polygon { constructor() { this.name = 'Polygon'; } } const poly1 = new Polygon(); console.log(poly1.name); // expected output: "Polygon" Programming/Javascript, Typescript 2022. 12. 23. [Javascript] filter() 함수 filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다. Array.prototype.filter() - JavaScript | MDN filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. developer.mozilla.org Programming/Javascript, Typescript 2022. 12. 23. 이전 1 2 3 4 다음