2014-06-23 2 views
0

에 스트림의 끝 감지 난 그냥 스트림 'data' 또는 'end' 청취자를 사용하는 경우이 스위치를 읽어 보시기에 "고전"모드와 stream-handbook는 말한다 : 당신이, 당신은 "데이터"리스너를 등록 할 때마다이 streams2

하는 것으로 새 streams2 API를

그래서 새로운 스트림 API의 혜택을 사용하는 가장 좋은 방법은 무엇입니까의 혜택을 상실하므로 호환성 모드로 스트림 을 넣어? streams1에 streams2 스트림을 전환하는 '데이터'청취자를 만 .resume()/.pause()를 호출 'end' 청취자

답변

1

를 등록하거나 추가하지 않고 내가 같은 일을 할 수있는 방법

gulp.src(["./src/server/**/*.coffee"]) 
    .pipe(coffee bare: true).on("error", gutil.log) 
    .pipe(gulp.dest "./bin/server") 
    .on 'end',-> gutil.log "successfully compiled server coffeescript" 

: 나는 현재이 일을하고있어 경우 흐름. 아무 것도하지 않고도 '끝'을들을 수 있습니다.

예를 들어 전환 한 경우에도 스트림 1과 스트림 2 모드 모두에서 작동하는 단순한 파이핑이므로 영향을 미치지 않습니다.

또한 마지막 스트림 (gulp.dest "./bin/server")이 양방향 스트림이 아니거나 스트림에서 데이터를 소비하지 않는 경우 '종료'이벤트가 표시되지 않을 수 있습니다. Writable 스트림 일 경우 대신 'finish'를 청취해야합니다 ('end'는 읽기 가능 스트림에서만 발생 함).

+1

예, 스트림에''end'' 이벤트가 전혀 없으면 어떻게해야합니까? 그것의 끝을 감지 할 수있는 방법이 있습니까? – Agzam

+0

마지막 스트림 ('gulp.dest "./bin/server"')이 쓰기 가능한 스트림 일 경우, 'finish'대신에 들어야합니다. 'end'는 읽기 가능 스트림에만 해당됩니다. – mscdex

+0

'on 'end'을'on 'finish ''로 바꾼 것은 – Agzam