es6에서 제너레이터는 비동기 작업을 캡슐화하는 데 사용됩니다. 이 컨테이너를 사용하면 지정된 시간에 함수를 실행하거나 일시 중지할 수 있습니다. 함수 키워드 사이에 별표(*)가 있습니다. 및 함수 이름), 구문은 "function *name(){..yield..}"입니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, ECMAScript 버전 6.0, Dell G3 컴퓨터.
Generator는 주로 비동기 작업을 캡슐화하는 데 사용되며, 지정된 시간에 함수를 실행하거나 일시 중지할 수 있습니다.
제너레이터 함수 정의와 일반 함수 정의의 차이점은 다음과 같습니다.
함수 키워드와 함수 이름 사이에 *(별표)가 있습니다.
Yield는 함수 내부에서 각 함수의 내부 상태를 정의하는 데 사용됩니다.
함수 내부에 return 문이 있으면 함수 내부의 마지막 상태입니다.
사용 구문:
function *name(){ ... yield; //需要暂停的时候加yield ... yield; ... } const p = name(); p.next() //调用函数,执行到第一个yield处停止 p.next() //从上一个yeild开始执行,到下一个yield处为止
간단한 예를 살펴보겠습니다.
// 定义 function* sayHello() { yield 'hello'; yield 'world'; return 'ending'; } // 调用 // 注意,hw获取到的值是一个遍历器对象 let g = sayHello();
위의 예에서는 두 개의 항복 표현식과 하나의 반환 표현식이 있는 sayHello라는 생성기 함수를 정의합니다. 따라서 함수 내부에는 hello, world 및 return 문(실행 종료)의 세 가지 상태가 있습니다. 마지막으로 이 함수를 호출하여 traverser 객체를 가져와 변수 g에 할당합니다.
제너레이터 함수의 호출 방법은 일반 함수인 함수명()과 완전히 동일합니다. 차이점은 다음과 같습니다.
함수 호출 후 내부 코드(첫 번째 줄부터 시작)가 즉시 실행되지 않습니다.
함수가 호출된 후에는 반환 값이 있습니다. 이 값은 내부 상태를 가리키는 포인터 개체이며 본질적으로 함수의 내부 상태를 포함하는 트래버스 개체입니다.
【관련 추천: javascript 비디오 튜토리얼, web front-end】
위 내용은 es6에서 제너레이터의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!