ジェネレータについて
2240 ワード
yieldはreturnキーワードのように値を返します.yieldはfunction*キーワードを使用する関数によって呼び出される必要があります.
ex generator
ジェネレータの動作は、単一スレッドで動作するプログラミング言語をマルチスレッドで動作させるように見えます.
function*キーワード宣言関数
関数体内には降伏門がある.
ジェネレータはfunction*キーワードとしてのみ宣言できるため、矢印関数を使用してジェネレータを作成することはできません.ジェネレータは、反復器を提供する反復器プロバイダとして動作します.
yieldキーワード
反復の自動生成
反復器プロバイダロールも実行されます.
function*キーワードを使用してジェネレータ形式で関数を作成します.
降伏は値のみ、降伏*は他のジェネレータまたは配列に対してのみ適用されます.
降伏演算子は値を返します.
ex generator
export function* generator(){
console.log("genderator started...")
let value = 1
while(value < 4)
yield value++
console.log("generator finished...")
}
generator-testimport {generator} from "./06/generator"
for(let value of generator())
console.log(value)
setInterval関数とジェネレータの類似性ジェネレータの動作は、単一スレッドで動作するプログラミング言語をマルチスレッドで動作させるように見えます.
const intervalID = setInterval(콜백함수, 호출주기)
setInterval関数は無限に繰り返すことができますが、clearInterval関数を使用して停止できます.clearInterval(intervalID)
setInterval.tsconst period = 1000
let count = 0
console.log('program started...')
const id = setInterval(() => {
if(count >= 12){
clearInterval(id)
console.log("program finished...")
}
else{
console.log(++count)
}
}, period)
function*キーワードfunction*キーワード宣言関数
関数体内には降伏門がある.
ジェネレータはfunction*キーワードとしてのみ宣言できるため、矢印関数を使用してジェネレータを作成することはできません.ジェネレータは、反復器を提供する反復器プロバイダとして動作します.
yieldキーワード
反復の自動生成
反復器プロバイダロールも実行されます.
function*キーワードを使用してジェネレータ形式で関数を作成します.
export function* rangeGenerator(from: number, to: number){
let value = from
while(value < to){
yield value++
}
}
yieldキーワード降伏は値のみ、降伏*は他のジェネレータまたは配列に対してのみ適用されます.
function* gen12() {
yield 1
yield 2
}
export function* gen12345(){
yield* gen12()
yield* [3, 4]
yield 5
}
console.log(gen12345)
index.tsimport { gen12345 } from "./06/yield-star";
for(let value of gen12345())
console.log(value)
収益率戻り値降伏演算子は値を返します.
export function* gen(){
let count = 5
let select = 0;
while(count--){
select = yield
`you select ${select}`
}
}
index.tsReference
この問題について(ジェネレータについて), 我々は、より多くの情報をここで見つけました https://velog.io/@doyoon9601/생성기-이해하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol