본문 바로가기

JavaScript31

JavaScript 기초(31)_프로미스(2) reject 1. 프로미스의 활용 프로미스 객체를 만든 후에 어떻게 사용할까? 우선 아래와 같이 'p'에 다가 프로미스 객체를 할당할 수 있다. const p = new Promise((resolve, reject) => { /* pendding */ setTimeout(() => { resolve(); /* fulfilled */ }, 1000); }); p.then(() => { console.log('1000ms 후에 fulfilled 됩니다.'); }); [Running] 1000ms 후에 fulfilled 됩니다. 위 코드를 보면 'then()'을 활용하여 프로미스 객체가 할당된 p의 setTimeout 함수를 콜백 하여 출력하였다. 실제로 1000ms 뒤에 문자열에 출력됨을 확인 할 수 있다. 그러나 위의.. 2021. 10. 29.
JavaScript 기초(30)_프로미스(1) promise 1. promise의 3가지 상태 (대기, 이행, 거부) : 프로미스는 자바스크립트 비동기 처리에 사용되는 객체이다. 자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미한다. 아래의 코드를 보면 따로 정의하지 않아도 promise가 내장되어 있음을 알 수 있다. console.log(Promise); [Running] [Function: Promise] 생성자를 통해서 프로미스 객체를 아래와 같이 만들 수 있다. new Promise(/* executor */ (resolve, reject) => {}); resolve와 reject 인자를 가지는 executor 함수를 통해서 생성할 수 있다. (물론 resolve, re.. 2021. 10. 28.
JavaScript 기초(29)_클래스(4) static 1. static 변수, 함수 : 객체가 아닌, 클래스의 변수와 함수 다음의 코드를 보자. class A { static age = 31; static hello(){ console.log(A.age); } } console.log(A); console.log(A.age); A.hello(); [Running] [class A] { age: 31 } 31 31 클래스 A를 출력했을 때, [] 안에 클래스 이름이 나오며 {} 안에는 변수와 값이 출력된다. A.age로 접근하여 출력했을 때도 31이 정상 출력되며 A.hello()로 hello() 함수에 접근하여도 31이 정상 출력된다. 그렇다면 위 코드에서 'static'을 제거하면 어떻게 될까? class B { age = 31; hello(){ cons.. 2021. 10. 26.
JavaScript 기초(28)_클래스(3) get과 set 1. get과 set 아래의 코드를 통해서 get과 set의 쓰임을 알아보자. class A { _name = 'no name'; get name(){ return this._name + '@@@'; } set name(value){ this._name = value + '!!!' } } const a = new A(); console.log(a); a.name = 'Kim'; console.log(a); console.log(a.name); console.log(a._name); Running] A { _name: 'no name' } A { _name: 'Kim!!!' } Kim!!!@@@ Kim!!! 맨 먼저 클래스 A를 가지는 객체 a를 생성해주었다. 그대로 a를 출력했을 때는 초기값으로 설정된 .. 2021. 10. 25.