de의 흐름 대상 학습(읽기 흐름, 피보나치 수열 실현)

1593 단어 node
자세히 보기
노드의 흐름 대상을 배우고 수열을 가지고 연습하세요.
모든 코드는 다음과 같습니다.


/**
 *            
 * 
 * @author yyy
 */
var stream=require('stream');
var util=require('util');

//     
// n     
function StreamChild(n)
{
    this.a=0;
    this.b=1;
    this.n = n;
    stream.Readable.call(this);
}
util.inherits(StreamChild, stream.Readable );

//        
StreamChild.prototype._read = function(){
    this.push('f(0):'+ this.a.toString());
    this.push('f(1):'+  this.b.toString());
    
    for(let i=2;i<= this.n+1-2;i++) {
      [this.a, this.b] = [this.b, this.a+this.b];
      this.push( `f(${i}):${this.b}`  );
    }
    this.push(null);
};

var child=new StreamChild(10);

//        ,  :          !         !
child.on('data',(data)=>{
   console.log(data.toString());
});
child.on('end',()=>{
   console.log('end');
});

다음은 출력 결과입니다.

f(0):0
f(1):1
f(2):1
f(3):2
f(4):3
f(5):5
f(6):8
f(7):13
f(8):21
f(9):34
end

설명
마지막 on('data')과 on('end') 문장을 제거하고 한 마디로 대체합니다.

child.pipe(process.stdout);

정확하게 집행할 수도 있으니 독자들은 출력이 무엇이 다른지 추측해 보십시오.
읽기 흐름과 쓰기 흐름은 파이프를 연결해서 실행할 수 있습니다. 참고할 수 있습니다.
읽기 흐름과 쓰기 흐름 학습

좋은 웹페이지 즐겨찾기