Generator를 이해하려고 노력하지만, 따라 올 수없는 예제를 발견했습니다.Generator를 반홖하는 Generator를 반복하십시오.
// First Generator
function* Colors()
{
yield "blue";
yield* MoreColors();
yield "green";
}
// Generator refered by the first Generator
function* MoreColors()
{
yield "yellow";
yield "orange";
}
// Let us iterate over the first Generator
const colorIterator = Colors();
let color;
while (!(color = colorIterator.next()).done)
{
console.log(color.value);
}
출력은 다음과 같습니다 "파란색" "노란색" "오렌지" "녹색"
내가 기대 : "파란색" " 황색 " "주황색 "
내가 기대하는 이유이 : 내가 오렌지가 반환 된 후, 방법 다음 내용은()MoreColors()에서 반복자에라고 생각합니다. 속성 이 의 경우 인 객체를 반환해야합니다. 은 이며이고 while 루프는 중지되어야합니다.
분명히, 나의 기대는 틀렸다.
내가 잘못한 것을 누군가 지적 할 수 있다면 기쁠 것입니다.
'yield'는'done' 속성을 수정하지 않으면 꽤 쓸모가 없습니다; 첫 번째 위임 된 발전기가 완료 되 자마자 외부 발전기 보고서가 완료된다는 것을 의미합니다. – ShadowRanger