JS 6

<JAVA Script> Promise 고급 예제

📌 1. Promise 의 동작 방식을 이용하여 예제문제 풀기  다음의 작은 예제는 Promise의 동작 방식을 보여준다.  testPromise() 함수는 을 클릭할 때마다 호출되며, window.setTimeout()을 사용해 1~3초의 무작위 간격 이후 프로미스 횟수(1부터 시작하는 숫자)로 이행하는 프로미스를 생성한다. Promise() 생성자는 프로미스를 만드는 데 쓰인다.프로미스 이행은 p1.then()을 사용하는 이행 콜백 세트를 통해 단순히 로그에 남는다. 약간의 로그를 통해, 함수의 동기 부분이 비동기적 프로미스의 완료와 어떻게 분리되어 있는지 확인할 수 있다.  짧은 시간 동안 버튼을 여러 번 클릭하면 다른 프로미스가 차례로 이행되는 것을 볼 수 있다.  * 구문 button 요소: ..

JS 2024.05.30

<JAVA Script> Promise 정적 속성과 정적 메서드(2)

📌 4. Promise 정적 속성 : Promise.race()  Promise.race() 메소드는 Promise 객체를 반환한다. 이 프로미스 객체는 iterable 안에 있는 프로미스 중에 가장 먼저 완료된 것의 결과값으로 그대로 이행하거나 거부한다. 여러 개의 프로미스 중에서 가장 먼저 완료된(이행되거나 거부된) 프로미스의 결과를 반환하는 새로운 프로미스를 반환한다. 즉, 주어진 프로미스 배열에서 가장 빨리 완료된 프로미스의 결과나 에러를 취한다.   주어진 코드에서 Promise.race()는 주어진 프로미스 배열 중 가장 먼저 완료된(이행되거나 거부된) 프로미스의 결과를 반환한다. 이 경우, promise2가 promise1보다 빠르게 완료되므로 promise2의 결과가 반환된다.  1. p..

JS 2024.05.30

<JAVA Script> Promise 정적 속성과 정적 메서드(1)

📌 1. Promise 정적 속성 : Promise [@@species] Promise  메서드에서 반환값을 구성하는 데 사용되는 생성자를 반환한다. Promise 객체의 종속적(derived) 객체를 만드는 데 사용되는 속성 접근자.@@species는 Symbol.species 심볼을 사용하여 정의되며, Promise의 기본 동작을 변경하는 데 사용될 수 있다. 이를 통해 서브 클래스를 만들 때 Promise의 기본 동작을 변경할 수 있다.  * 기본 구문  기본적으로, Promise[@@species]는 Promise 생성자를 반환한다. 즉, 새로운 Promise 객체가 생성될 때 기본적으로 Promise 생성자를 사용한다.   📌 서브클래싱 : Promise [@@species]  Promise..

JS 2024.05.30

<JAVA Script> Promise() 의 생성자 알아보기

📌 1. Promise () 생성자Promise 생성자는 주로 프로미스를 지원하지 않는 함수를 감쌀 때 사용한다.   Promise() 생성자는 JavaScript에서 비동기 작업을 다룰 때 사용되는 내장 객체이다. Promise() 생성자는 새로운 Promise 객체를 생성한다. 비동기 작업이 성공적으로 완료되었거나 실패했을 때 이를 처리할 수 있는 콜백 함수를 제공한다.  * 기본 구문 executor: 비동기 작업을 수행하는 콜백 함수(매개변수)로 executor는 resolve와 reject라는 두 개의 콜백 함수를 인수로 받는다. 이 콜백 함수를 사용하여 비동기 작업의 성공 또는 실패를 알린다. resolve 및 reject 인수를 전달할 실행 함수. 실행 함수는 프로미스 구현에 의해 reso..

JS 2024.05.29

<JAVA Script> Promise 의 동시성

📌 1. Promise 와 유사한 객체 Thenables 인터페이스 thenable은 두 개의 콜백(하나는 프로미스가 이행될 때, 다른 하나는 거부될 때)과 함께 호출되는 .then() 메서드를 구현한다. 프로미스 또한 thenable이다.  이를 통해 기존 객체에 then 메서드를 추가하여 프로미스와 호환되게 만들 수 있다. Thenable 객체는 특히 라이브러리나 프레임워크에서 비동기 작업을 표준화된 방식으로 처리할 때 유용하다.  * Thenable 과 Promise 의 차이점Promise는 ECMAScript 2015(ES6) 표준에서 정의된 내장 객체이다.  Promise는 비동기 작업의 결과를 나타내며, 세 가지 상태(대기, 이행, 거부)를 가진다. 반면에, Thenable은 then 메서드..

JS 2024.05.28

<JAVA Script> 비동기 처리 Promise이란?

📌 1. 동기처리 vs 비동기처리 동기 : 하나의 작업이 실행되는 동안은 다른 작업을 동시에 진행하지 않는 방식. 앞의 작업이 종료된 이후 다른 작업을 진행할 수 있는 순차적인 방식을 의미​프로그램에서 작업을 처리하는 주체를 스레드(Thread)라고 부른다. 여러 작업들을 동기적으로 처리하면 스레드는 각 작업을 순차적으로 하나씩 처리한다. 스레드에서 여러 작업을 동시에 처리하지 않고 하나의 작업이 종료된 다음에 다른 작업을 처리할 수 있는 방식을 블로킹 방식이라고 한다. 자바스크립트는 기본적으로 작업을 동기적으로 처리한다.  하지만, 실제로 자바스크립트의 모든 작업들을 동기적으로 처리하게 되면 많은 문제가 발생한다. 자바스크립트는 하나의 스레드만으로 동작한다. (싱글 스레드 방식) 그렇기 때문에 자바스..

JS 2024.05.27