我刚刚读到,如果某个流使用'data'
或'end'
个侦听器,则会切换到" classic"模式和stream-handbook说:
请注意,无论何时注册"数据"听众,你把流 进入兼容模式,这样你就失去了新stream2的好处 API
那么使用新流API的好处是什么?如果我现在这样做:
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"
如果不注册'end'
侦听器
答案 0 :(得分:2)
仅调用.resume()
/ .pause()
或添加'数据'侦听器会将streams2流切换为streams1流。你可以在不影响任何事情的情况下聆听'结束'。
在你的特定例子中,即使它确实切换它也不会影响你,因为你只是管道,它在streams1和streams2模式下都有效。
此外,如果最后一个流(gulp.dest "./bin/server"
)不是双工流,或者您不使用其中的数据,则可能看不到“结束”事件。如果它只是一个可写流,你应该听'完成'('结束'只在可读流上发出)。