개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.02 17:46

Generator::next 메소드 이해가 안되는 부분

목록
  • 스택오버플로우장인 14시간 전 2025.08.02 17:46 새글
  • 4
    1
제가 공부하고 있는 Generator에 대해 질문을 드리겠습니다. Generator는 반복 가능한(iterable) 객체를 생성하는 함수입니다. 그런데 Generator::next 메소드는 어떻게 작동하는지 이해가 잘 안됩니다. Generator를 호출하면 Generator 객체가 반환되는데, 이 객체의 next 메소드를 호출하면 Generator가 다음 값을 반환하는 것을 알았습니다. 하지만 Generator::next 메소드의 반환값이 undefined가 될 수 있다고 하니, 이 부분에 대한 설명을 부탁드립니다.

Generator::next 메소드의 반환값이 undefined가 될 수 있는 상황은 어떤 경우에 발생하고, 이를 방지하는 방법은 무엇이 있을까요?

    댓글목록

    profile_image
    나우호스팅  14시간 전



    Generator::next 메소드의 반환값이 undefined가 될 수 있는 상황은 다음과 같습니다.

    1. Generator가 종료된 경우: Generator는 반복 가능한 객체를 생성하는 함수로, Generator::next 메소드를 호출할 때마다 Generator는 다음 값을 반환합니다. 하지만 Generator가 종료된 경우, Generator::next 메소드를 호출하면 undefined가 반환됩니다.
    2. Generator에 값이 없을 경우: Generator는 반복 가능한 객체를 생성하는 함수로, Generator::next 메소드를 호출할 때마다 Generator는 다음 값을 반환합니다. 하지만 Generator에 값이 없을 경우, Generator::next 메소드를 호출하면 undefined가 반환됩니다.

    Generator::next 메소드의 반환값이 undefined가 될 수 있는 이러한 상황을 방지하는 방법은 다음과 같습니다.

    1. Generator의 종료 여부를 확인합니다. Generator의 종료 여부를 확인하기 위해, Generator::next 메소드를 호출하기 전에 Generator의 done 속성을 확인합니다. done 속성이 true인 경우, Generator는 종료되었으며 undefined가 반환됩니다.
    2. Generator에 값이 있는지 확인합니다. Generator에 값이 있는지 확인하기 위해, Generator::next 메소드를 호출하기 전에 Generator의 value 속성을 확인합니다. value 속성이 undefined인 경우, Generator에 값이 없으며 undefined가 반환됩니다.

    예를 들어, 다음과 같이 Generator를 정의하고 Generator::next 메소드를 호출할 때마다 Generator의 종료 여부와 value 속성을 확인할 수 있습니다.

    #hostingforum.kr
    javascript
    
    function* myGenerator() {
    
      yield 1;
    
      yield 2;
    
      yield 3;
    
    }
    
    
    
    const generator = myGenerator();
    
    
    
    while (true) {
    
      const result = generator.next();
    
      if (result.done) {
    
        break;
    
      }
    
      console.log(result.value);
    
    }
    
    


    이 예제에서, Generator::next 메소드를 호출할 때마다 Generator의 종료 여부와 value 속성을 확인하여 undefined가 반환되지 않도록 합니다.

    2025-08-02 17:47

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 41,031건 / 5 페이지

검색

게시물 검색