Acme.BookStore.HttpApi.Host/node_modules/cloneable-readable/index.js
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
'use strict'
var PassThrough = require('readable-stream').PassThrough
var inherits = require('inherits')
var p = require('process-nextick-args')
function Cloneable (stream, opts) {
if (!(this instanceof Cloneable)) {
return new Cloneable(stream, opts)
}
var objectMode = stream._readableState.objectMode
this._original = stream
this._clonesCount = 1
opts = opts || {}
opts.objectMode = objectMode
PassThrough.call(this, opts)
forwardDestroy(stream, this)
this.on('newListener', onData)
this.once('resume', onResume)
this._hasListener = true
}
inherits(Cloneable, PassThrough)
function onData (event, listener) {
if (event === 'data' || event === 'readable') {
this._hasListener = false
this.removeListener('newListener', onData)
this.removeListener('resume', onResume)
p.nextTick(clonePiped, this)
}
}
function onResume () {
this._hasListener = false
this.removeListener('newListener', onData)
p.nextTick(clonePiped, this)
}
Cloneable.prototype.clone = function () {
if (!this._original) {
throw new Error('already started')
}
this._clonesCount++
// the events added by the clone should not count
// for starting the flow
this.removeListener('newListener', onData)
var clone = new Clone(this)
if (this._hasListener) {
this.on('newListener', onData)
}
后面还有 93 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
