>  기사  >  웹 프론트엔드  >  JS에서 Generator를 비동기식으로 구현하는 방법

JS에서 Generator를 비동기식으로 구현하는 방법

一个新手
一个新手원래의
2017-10-11 09:57:461779검색

1. 기호 데이터 유형

기호 데이터 유형이 ES6에 새로 추가되었습니다. [Symbol.iterator] 속성이 있는 Y 데이터 유형: array, array array, map, set,

[symbol.iterator]

속성 객체, 객체를 생성할 수 있습니다. Iterator object[Symbol.iterator]属性的对象,直接调用就可以生成一个Iterator对象

二、Iterator对象:是一个指针对象,遍历器对象

        方法:next():返回的格式为{value:    ,done:      }

                 使用for..of遍历: 每次遍历得到的是value值。              

三、Geneteror

  function*  G(){
             yield    200;
             yield    300;
            return  400;
       }
    var g=G();

      1.Generator不是一个函数,定义generator时,使用function*,使用yield来返回结果。

      2.调用Generator之后,它内部的代码不会立即执行,而是处于一个暂停的状态。并生成一个generator对象。

      3.遇到yield时,会执行yeild后面的表达式,并返回执行之后的值,然后再次进入暂停状态,此时done: false

2. Iterator 객체 : 포인터 객체, iterator 객체

메소드 : next () : The 반환 형식은 {Value:, Done:}입니다.

For..of를 사용하여 순회합니다. 값 값은 각 순회에서 얻어집니다.​​​​​​​

3. Geneterorrrreee

​​ 1. 제너레이터를 정의할 때 함수*와 Yield를 사용하여 결과를 반환합니다.

2. Generator를 호출한 후, 그 안의 코드는 즉시 실행되지 않고 정지 상태가 됩니다. 그리고 생성기 개체를 생성합니다.

3.

수익률이 발생하면 수익률이 실행 >다음 표현식을 실행하고 실행 후 값을 반환한 다음 다시 일시정지 상태로 진입합니다. 이때 done: false


Generator return 도 반복자 객체이므로 next 메소드인 for..of

를 사용할 수 있습니다. 1. next 메소드를 사용할 때 next의 매개변수는 실행된 Yield 이전의 값으로 전달됩니다. 2.yield*는 하나의 발전기에서 다른 발전기를 참조할 수 있습니다.

4. Generator는 비동기 작업을 구현합니다.

1. 하나의 매개변수인 콜백 함수만 사용하는 썽크 함수가 필요합니다.

2. co 라이브러리는 일반적으로 비동기 작업을 패키징하는 데 사용되므로 편리합니다. 그리고 간결합니다. 3.Yield 다음에는 썽크 기능이 와야 합니다.

4. 발전기는 여전히 콜백에 의존합니다. function 🎜🎜🎜🎜 2. Yield를 wait로 대체합니다🎜🎜🎜🎜 3. Wait 뒤에는 promise 개체가 옵니다. 다른 유형의 데이터에도 괜찮지만 비동기식 대신 동기식으로 실행됩니다. 🎜🎜🎜 🎜🎜🎜🎜🎜

위 내용은 JS에서 Generator를 비동기식으로 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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