일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- spring webflux
- 백준
- 운영체제
- Galera Cluster
- OS
- JavaScript
- 디자인 패턴
- JPA
- Algorithm
- Kafka
- MySQL
- 네트워크
- Spring
- 컴퓨터구조
- mongoDB
- Proxy
- redis
- 파이썬
- Data Structure
- react
- 자료구조
- 자바
- design pattern
- 알고리즘
- c언어
- Java
- IT
- Heap
- MSA
- C
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