>웹 프론트엔드 >프런트엔드 Q&A >es6에서 수익률은 무엇을 의미합니까?

es6에서 수익률은 무엇을 의미합니까?

WBOY
WBOY원래의
2022-03-30 18:25:443236검색

es6에서 Yield는 생성기가 자체 작업을 내부적으로 일시 중지하는 데 사용하는 키워드입니다. Yield 뒤에는 생성기 함수 또는 기타 반복 가능한 객체가 오고, Yield 표현식의 반환 값은 그 뒤의 반복 가능한 객체의 값입니다. 반복이 완료되었습니다. 반환 값, 구문은 "function*gen(){수율 표현}"입니다.

es6에서 수익률은 무엇을 의미합니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, ECMAScript 버전 6.0, Dell G3 컴퓨터.

es6에서 Yield는 무엇을 의미하나요?

yield는 ES6의 Generator가 자체 작업을 내부적으로 일시 중지하는 데 사용하는 키워드입니다.

"내부"라는 단어에 유의하세요. 생성기 기능은 외부 로직에 의해 일시 중지될 수 없으며, 항복을 통해서만 자체적으로 일시 중지될 수 있습니다.

yield 키워드 뒤에 변수가 오거나 단독으로 사용될 수 있습니다. 항복 뒤에 변수(이를 항복 표현식이라고 부를 수 있음)가 있는 경우 생성기 함수가 일시 중지된 후 실행을 재개하면 전달된 매개변수가 후속 논리 연산에 참여하기 위해 전체 항복 표현식의 값으로 사용됩니다.

Yield를 따르지 않는 경우 단독으로 사용되는 Yield는 생성기 작동 재개 후 전달된 매개변수가 후속 작업에 참여하기 위한 Yield 값으로 사용됩니다.

1단계, 생성기 함수를 구성합니다.

function* numbers () {
     yield 1;
     yield 2;
   
     return 'numbers';
 }

2단계, 위 생성기 함수 외부에 프록시를 만듭니다.

function* delegate () {
     var str = yield* numbers();
     console.log(str);
     
     yield 3;
     return 'delegate';
}

3단계, 반복자를 구성합니다.

var iterator = delegate();

4단계, 반복 결과를 출력합니다.

 /**
  * 第一次输出结果
  * { value: 1, done: false }
  */
 console.log(iterator.next()) // 第一次输出
 
 /**
  * 第二次输出结果
  * { value: 2, done: false }
  */
 console.log(iterator.next()) // 第二次输出
 
 /**
  * 第三次输出结果
  * numbers
  * { value: 3, done: false }
  */
 console.log(iterator.next()) // 第三次输出
 
 /**
  * 第四次输出结果
  * { value: 'delegate', done: true }
  */
 console.log(iterator.next()) // 第四次输出

출력 결과 설명

3번째 출력 시 내용이 2줄 출력됩니다. 첫 번째 줄의 내용은 대리자 함수의 console.log(str) 출력이고 값은 숫자 함수의 반환 값입니다.

네 번째 출력 시 한 줄의 내용이 출력되는데, 여기서 값은 대리자 함수의 반환 값입니다. 이 시점에서 done 속성은 true입니다.

【관련 추천:

javascript 비디오 튜토리얼, web front-end

위 내용은 es6에서 수익률은 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.