코어 포인트
ecmascript 6 (ES6)은 약속 및 생성기를 통한 비동기 프로그래밍을 더 잘 지원하고 원격 자원과의 통신의 기초로 XMLHTTPREQUEST를 대체하도록 설계된 Fetch API를 도입했습니다.
fetch API 메소드는 발전기와 함께 사용될 수있는 ES6 약속 객체를 반환하여 일련의 작업과 같은 복잡한 비동기 작업의 기초를 형성하며, 각 작업은 이전 작업에 의해 반환 된 값에 따라 다릅니다. -
> 발전기는 Fetch API와 함께 사용하여 긴 폴링과 같은 작업을 수행 할 수 있으며, 여기서 클라이언트는 응답을받을 때까지 서버에 요청을 지속적으로 보냅니다. 이것은 데이터가 포함되기 전에 응답을 생성하여 수행됩니다.
Fetch API 및 ES6 생성기는 또한 다중 종속성 비동기 호출을 구현하는 데 사용될 수 있으며, 각 후속 작업은 이전 작업에 의해 반환 된 값에 따라 다릅니다. 이것은 생성기 기능에 넣고 필요한 경우 실행하여 수행 할 수 있습니다. -
ECMAScript 6 (일명 ECMAScript 2015 또는 ES6)은 많은 새로운 기능을 JavaScript에 제공하므로 대규모 응용 프로그램에 이상적입니다. 한 가지 기능은 약속 및 생성기를 사용하여 비동기 프로그래밍을 더 잘 지원한다는 것입니다. 다른 하나는 원격 자원과의 통신의 기초로 XMLHTTPREQUEST를 대체하도록 설계된 Fetch API의 추가입니다. -
Fetch API 메소드는 생성기와 함께 사용될 수있는 ES6 약속 객체를 반환하여 복잡한 비동기 작업의 기초를 형성합니다. 이는 일련의 비동기 작업 (각각 이전 작업에서 반환 된 값에 따라 다름)에서 최신 업데이트를 얻으려면 서버에 비동기 호출을 반복적으로 발행 해야하는 작업에 이르기까지 모든 것일 수 있습니다.
이 기사에서는 비동기 API를 구축하기 위해 생성기와 함께 Fetch API를 사용하는 방법을 배웁니다. Fetch API는 현재 Chrome, Opera, Firefox 및 Android 브라우저에서 지원됩니다. 지원되지 않는 브라우저의 경우 Github의 Polyfill을 제공합니다. -
평소와 같이,이 기사의 코드는 기사 맨 아래의 최종 기술을 시연하여 Github 저장소에서 찾을 수 있습니다.
비동기 조작
에 발전기를 사용하십시오
팁 : 생성기의 내용과 작동 방식을 검토 해야하는 경우 다음을 확인하십시오.
그렇다면 발전기를 사용하여 비동기 작업을 어떻게 수행합니까? Generator의 작동 방식을 분석하면 답을 찾을 수 있습니다.
반복자를 구현하는 발전기 함수는 다음과 같은 구조를 갖습니다.
키워드는 결과를 반환하고 다음 번에 호출 될 때까지 반복 기능의 실행을 일시 중지 할 책임이 있습니다. 또한 다음에 부름을받을 때 모든 것을 다시 시작하는 대신 함수의 상태를 보존하고, 마지막으로 남은 곳을 효과적으로 기억합니다.
우리는 위의 기능을
루프없이 양식으로 다시 생각할 수 있습니다 : function *myIterator(){
while(condition){
//计算要返回的下一个值
yield value;
}
}
로그인 후 복사
위의 두 경우에서 함수는 동일하게 작동합니다. 키워드를 사용하는 유일한 이유는 다음 반복 (그 자체가 약간 비동기식으로 보일 때까지 함수의 실행을 일시 중지하는 것입니다. 명령문은 모든 값을 반환 할 수 있으므로 약속을 반환하고 함수가 여러 비동기 호출을 실행할 수 있습니다.
yield
페치 api 와 함께 생성기를 사용하십시오
팁 : Fetch API를 검토하려면 다음을 확인하십시오.
앞에서 언급했듯이 Fetch API는 xmlhttprequest를 대체하도록 설계되었습니다. 이 새로운 API는 HTTP 요청의 다양한 부분에 대한 제어를 제공하고 서버의 응답에 따라 구문 분석 또는 거부 된 약속을 반환합니다. yield
긴 폴링
위 내용은 Fetch API 및 ES6 생성기를 사용한 비동기 API의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!