es6의generator 상세

1852 단어

generator 소칼

  • generator 소개
    generator: 생성기를 멈추고 복구할 수 있는 프로세스 (코드 세그먼트) 로 볼 수 있습니다. 코드가 실행되는 과정에서 주로 제어권인genearator 문법:function*은 생성기 함수에 사용할 새로운 키워드입니다. (생성기 방법도 있습니다.)yield는generator가 스스로 멈출 수 있는 연산자입니다.이 밖에generator는 yield를 통해 입력과 출력을 수신할 수 있습니다.
  •    function* genFunc() {
        // (A)
        console.log('First');
        yield;
        console.log('Second');
       }
        const genObj = genFunc();
        genObj.next();
        // Output: First
        genObj.next();
        // output: Second
    
    1.  genFunc() , genObj
        , A 。
    2. genObj.next() ,
    3. genFunc() yield 
    

    generator 함수의 다른 종류

  • generator 함수
  •  function* genFunc() { 
         ··· 
        }
     const genObj = genFunc();
    
  • generator 함수 표현식
  •  const genFunc = function* () { 
         ··· 
      };
     const genObj = genFunc();
    
  • 대상의generator 방법
  •  const obj = {
         * generatorMethod() {
             ···
         }
     };
     const genObj = obj.generatorMethod();
    
  • 클래스 중의generator 방법
  •  class MyClass {
         * generatorMethod() {
             ···
         }
     }
     const myInst = new MyClass();
     const genObj = myInst.generatorMethod();
    

    사용 사례


    이generator가 무슨 소용이 있느냐고 물었는데generator가 되돌아오는 대상은 교체할 수 있다.모든 생산량은 교체치의 서열에 도움이 된다.
  • 생성기를 사용하여 교체를 실현한다
  • function * objectEntries(obj){
       const objKeys=Reflect.ownKeys(obj)
       for(const objKey of objKeys){
           yield [objKey,obj[objKey]]
       }
    }
    
    const jane = { first: 'Jane', last: 'Doe' };
    for (const [key,value] of objectEntries(jane)) {
        console.log(`${key}: ${value}`);
    }
    
  • 비동기 리셋을 해결하면generator를 사용하여 Promises와의 작업을 크게 간소화할 수 있습니다.Promise 기반 함수fetchJson () 과 generator를 통해 어떻게 개선하는지 살펴보겠습니다
  • 좋은 웹페이지 즐겨찾기