>  기사  >  웹 프론트엔드  >  es6에서 제너레이터의 사용법은 무엇입니까

es6에서 제너레이터의 사용법은 무엇입니까

WBOY
WBOY원래의
2022-05-05 14:51:322117검색

es6에서 제너레이터는 비동기 작업을 캡슐화하는 데 사용됩니다. 이 컨테이너를 사용하면 지정된 시간에 함수를 실행하거나 일시 중지할 수 있습니다. 함수 키워드 사이에 별표(*)가 있습니다. 및 함수 이름), 구문은 "function *name(){..yield..}"입니다.

es6에서 제너레이터의 사용법은 무엇입니까

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

es6에서 Generator의 용도는 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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