JavaScript의 yield 키워드

Muhammad Muzammil Hussain 2023년6월20일
JavaScript의 yield 키워드

이 기사에서는 제너레이터 함수에서 yield 키워드를 사용하는 것과 그 목적에 대해 설명합니다. JavaScript 예제를 통해 yield 키워드의 기능과 사용법을 실행합니다.

JavaScript에서 yield 키워드 사용

JavaScript에서는 콜백이나 중첩 함수에서 yield 표현식을 사용할 수 없습니다. yield 키워드를 사용하여 생성기 기능을 비동기식으로 일시 중지하고 다시 시작합니다.

yield 문은 valuedone이라는 두 가지 속성을 포함하는 개체를 반환합니다.

  1. : 이 속성에는 생성기 함수에 전달된 실제 값이 포함됩니다.

  2. 완료: 이 속성에는 부울 값이 포함됩니다. 생성기 기능이 완전히 완료되면 true를 반환합니다. 그렇지 않으면 거짓입니다.

  3. 생성기 함수: 함수를 생성기로 변환하려면 function 키워드와 함께 별표 기호(*)를 추가해야 합니다. JavaScript에서 생성기 기능은 일반 기능과 유사합니다.

    yield 키워드를 사용하여 value를 반환합니다. 생성기 함수의 실행을 일시 중지하려면 yield 표현식을 사용해야 합니다.

    실행을 다시 재개하려면 next() 메서드를 호출해야 합니다. 함수는 yield 또는 return 문을 찾을 때까지 계속 실행됩니다.

    생성기 함수가 다시 호출되면 마지막 yield 표현식부터 구현이 계속됩니다.

여기서는 함수를 생성하는 예제를 생성하고 yield 키워드를 사용하여 실행을 일시 중지합니다.

예제 코드:

<script>

function* testGenerator(i) {
    while (i < 5) {
        yield i++;
    }

}

//creating an object with our function testGenerator

const test = testGenerator(2);

//return object with 2 value is passed to the testGenerator yield expression

console.log(test.next());

//return object with 3 value.

console.log(test.next());

//return object with 4 value

console.log(test.next());

</script>

출력:

            [object Object] {
            done: false,
            value: 2

            }

            [object Object] {
            done: false,
            value: 3
            }

            [object Object] {
            done: false,
            value: 4
            }

위의 JavaScript 소스 코드에서 별표 기호(*)를 사용하여 생성기 함수 testGenerator()를 선언했습니다. 함수 내에서 yield 키워드로 실행을 일시 중지하기 위해 while 루프를 사용했습니다.

그런 다음 생성기 함수로 test 개체를 만들고 2 값을 전달했습니다. console.log에서 함수 개체 testnext() 메서드를 호출했습니다.

컴파일러의 로그 상자에서 반환된 개체 및 실행 흐름을 볼 수 있습니다.