일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준
- 자료구조
- Algorithm
- redis
- Heap
- JPA
- 알고리즘
- design pattern
- 컴퓨터구조
- react
- 디자인 패턴
- OS
- c언어
- MySQL
- 파이썬
- Galera Cluster
- Data Structure
- JavaScript
- mongoDB
- Java
- C
- 자바
- MSA
- 운영체제
- Spring
- IT
- spring webflux
- Kafka
- Proxy
- 네트워크
Archives
- Today
- Total
시냅스
TIL : JavaScript { Generator } 본문
Generator
- 원하는 만큼 코드 실행을 시작하거나 중지하는 함수 ( 쓰레드 처럼 이용하고 싶은건가...? )
- 비동기 코드와 작성하면 효과적!!
용례
- function 키워드에 * 을 붙여주고
- 반환할 콘텐츠에 yeild를 불여주고
- next() 로 실행!
- 콘텐츠를 전부 호출한 이후에 재실행하면 undefined 와 done: true 반환!
- return을 사용해 값을 전달 후 함수를 종료할 수 있다.
- throw를 사용해 오류를 잡고 함수 종료!
Promise와 함께 사용하면 효과적이다!!
const myPromise = () => new Promise((resolve) => {
resolve('our value is...')
})
function* gen() {
let result = ""
// 프로미스를 반환
yield myPromise().then(data => {result = data})
// 프로미스의 결과를 기다린 후 이 값을 사용
yield result + ' 2'
}
// 비동기 함수를 호출
const asyncFunc = gen()
const val1 = asyncFunc.next()
console.log(val1)
// { value: Promise, done: false }
// 프로미스가 완료되기를 기다린 후 .next()를 호출
val1.value.then(() => {
console.log(asyncFunc.next())
})
// {value: "our value is ...2", done: false}
'JavaScript' 카테고리의 다른 글
TIL : JavaScript { Proxy } (0) | 2021.12.03 |
---|---|
UUID 사용법 (0) | 2021.11.27 |
TIL : JavaScript { Symbol, Class } (0) | 2021.11.05 |
TIL : JavaScript { this, arrowFunction, spread syntax } (0) | 2021.11.03 |
Comments