>  기사  >  웹 프론트엔드  >  제너레이터 함수와 비동기 함수의 차이점 소개

제너레이터 함수와 비동기 함수의 차이점 소개

不言
不言앞으로
2019-04-04 11:28:152345검색

이 글은 제너레이터 기능과 비동기 기능의 차이점을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Generator 함수:

Generator 함수는 ES2015에서 제공하는 비동기 솔루션으로 일반 함수와는 매우 다릅니다.

1 function 키워드 뒤에는 (*) 기호가 옵니다. 2. 함수 본문 내에서 항복 표현식을 상태로 사용합니다.

생성기 함수는 순회자를 반환하고 각 상태는 for...of 메서드를 통해 탐색할 수 있습니다.

사용법:

생성기를 실행하고 그렇지 않습니다. 즉시 실행하지만 Traverser를 반환하면 순회자는 다음 상태를 실행하고 오류를 캡처하거나 next(), throw() 또는 return()을 호출하여 순회자를 종료합니다.

async 함수:

async 함수는 비동기식입니다. ES2017에서 제공하는 함수 구문은 생성기의 구문이지만 사용법은 여전히 ​​생성기 함수와 매우 다릅니다. 1. 함수 키워드 앞에 async 키워드를 사용하세요.

비동기 함수는 약속 개체를 반환합니다.

사용법:

비동기 함수 실행은 일반 함수와 마찬가지로 즉시 실행되지만 약속 개체를 반환합니다. 두 가지:

1. Generator는 ES2017에 나타나고 async는 Generator의 구문 설탕입니다.

2 Generator 실행에는 실행기(next() 및 기타 메소드)가 필요합니다. ); 비동기 함수에는 일반 함수의 실행과 동일한 자체 실행기가 있습니다.

3. 비동기의 구문과 의미는 더 명확하며 대기는 (*) 숫자를 의미합니다. Generator 함수의 Yield는 그리 직접적이지 않습니다.

4. Generator의 Yield 뒤에는 Thunk 함수 또는 Promise 개체만 올 수 있고 비동기 함수의 Wait 뒤에는 Promise 개체 또는 기본 유형 값이 올 수 있습니다. 즉시 해결되는 Promise 객체로 자동 변환됩니다.

5. Generator는 Promise 객체를 반환하는 비동기에 비해 순회자를 반환합니다.

【관련 추천:

JavaScript 비디오 튜토리얼

위 내용은 제너레이터 함수와 비동기 함수의 차이점 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제