[JavaScript] 비동기 작업 promise
·
개발새발개발/JavaScript
- promise 객체는 비동기 작업 실행, 상태 관리 및 결과 저장 등 다양한 역할을 해줌   Promise의 3가지 상태  - 대기 : 아직 작업이 완료되지 않은 상태- 성공 : 비동기 작업이 성공적으로 마무리 된 상태- 실패 : 비동기 작업이 실패한 상태(네트워크에러, 코드에러 등)  - 해결(resolve) : 대기 -> 성공- 거부(reject) : 대기 -> 실패   유튜브 예시 - 대기 : 영상 로딩- 해결 : 영상 로딩 완료 - 성공 : 영상 시청이 가능한 상태 - 거부 : 영상 로딩 실패- 실패 : 시청 불가능한 상태     promise 객체 생성하기   - 생성자의 인수로 비동기작업을 실제로 진행할 콜백함수를 넣어줌- 생성과 동시에 자동으로 콜백함수를 호출해 안에 있는 비동기 작업을 ..
[JavaScript] 콜백함수를 활용한 비동기 작업 처리
·
개발새발개발/JavaScript
콜백함수를 활용한 비동기 작업 처리    sum의 값을 add 함수 밖에서도 이용할 수 있게 하는 방법 - 비동기 처리의 결과 값을 사용하고자 하는 콜백함수를 전달해주면 됨     실행 순서 1.  add 함수 호출2. setTimeout 함수 호출3. 3초 뒤 callback 함수 호출4. sum 값 계산5. 매개변수로 받은 콜백함수를 sum 값으로 호출6. console.log에 출력   function add(a,b,callback) { setTimeout(()=> { const sum = a+b callback(sum) }, 3000)}add(1,2,(value) => { console.log(value)})      예제 - 비동기 작업의 결과를 또다른 ..
[JavaScript] 동기와 비동기
·
개발새발개발/JavaScript
동기    - 동기 : 여러개의 작업이 있을 때 이 작업들을 순서대로 한 번에 하나씩 처리하는 것- 쓰레드 : 작업을 직접 실행하고 처리해주는 역할을 하는 것- 자바스크립트는 기본적으로 모든 코드가 동기적으로 실행됨     - 혹시라도 중간에 오래 걸리는 작업이 섞여있을 경우 전체 프로그램의 성능이 저하될 수 있다는 치명적인 단점이 있다     - 자바나 C언어는 여러개의 스레드를 동시에 사용하는 멀티스레드 기법을 사용하여 이러한 문제를 해결함- 하지만 자바스크립트 엔진에는 쓰레드가 1개밖에 없음-> 이를 해결하기 위해 비동기 방식을 사용함     비동기  - 비동기 : 작업을 순서대로 처리하지 않음- 앞선 작업을 기다리지 않고 다른 작업을 동시에 진행시킬 수 있음     - 결과값을 활용해야 할 때는 ..