ES6 Generators
생성기 함수
function* quips(name) {
yield "hello " + name + "!";
yield "i hope you are enjoying the blog posts";
if (name.startsWith("X")) {
yield "it's cool how your name starts with X, " + name;
}
yield "see you later!";
}
function*
로 표시yield
키워드는 생성기의 실행을 멈추고 그 다음에 계속 실행할 수 있습니다> var iter = quips("jorendorff");
[object Generator]
> iter.next()
{ value: "hello jorendorff!", done: false }
> iter.next()
{ value: "i hope you are enjoying the blog posts", done: false }
> iter.next()
{ value: "see you later!", done: false }
> iter.next()
{ value: undefined, done: true }
생성기 함수를 실행할 때 함수는 즉시 실행되지 않습니다. 호출
next
방법은 다음 yield
문장으로 실행되고 yield의 값을 되돌려줍니다.모든 yield 실행이 완료되면
{ value: undefined, done: true }
생성기 함수는 교체기이다
function* range(start, stop) {
for (var i = start; i < stop; i++)
yield i;
}
for (var value of range(0, 3)) {
alert("Ding! at floor #" + value);
}
next
함수는 값을 전할 수 있으며, 전입된 값은 yield
의 반환값return
방법은 생성기 방법의 실행을 끝내지만, 생성기 방법에finally가 있다면finallythrow
방법은 ield방법에서 이상을 던진다return
방법이 호출되지 않고 회수되면finally는 실행되지 않습니다yield*
iterator의 모든 값을 되돌려줍니다.function* concat(iter1, iter2) {
for (var value of iter1) {
yield value;
}
for (var value of iter2) {
yield value;
}
}
다음은 다음과 같습니다.
function* concat(iter1, iter2) {
yield* iter1;
yield* iter2;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.