「シャープ」で見つかりました: 「^0.26.0」
何らかの理由でこれは機能しません:
const readableStream = new stream.Readable({
objectMode: true,
read() {}
})
class FileSwitch extends stream.Writable {
constructor(options, folder) {
super(options)
this.i = 0
}
_write(chunk, encoding, next) {
console.log(this.i)
this.i++
next()
}
}
var png = sharp().png()
var fileswitch = new FileSwitch();
readableStream.pipe(png).pipe(fileswitch)
出力なし
それでも、これは何らかの理由で機能します:
const readableStream = new stream.Readable({
objectMode: true,
read() {}
})
class FileSwitch extends stream.Writable {
constructor(options, folder) {
super(options)
this.i = 0
}
_write(chunk, encoding, next) {
console.log(this.i)
this.i++
next()
}
}
var png = sharp().png()
var fileswitch = new FileSwitch();
readableStream.pipe(png.pipe(fileswitch))
>>> 0
>>> 1
>>> 2
読み取り可能なストリームには、setInterval() を使用して 1 秒間隔で文字列データの新しいチャンクがプッシュされます。
私は、本来あるべき機能を書き込み可能なストリームに公開していませんか?ドキュメントには、この設定は機能するはずだと書かれています :)
アップデート
@Matt のコメントからの提案を追加しました。
const readableStream = new stream.Readable({
objectMode: true,
read() {}
})
class FileSwitch extends stream.Writable {
constructor(options, folder) {
super(options)
this.i = 0
}
_write(chunk, encoding, next) {
console.log(this.i)
this.i++
next()
}
}
readableStream.on('error', listener => {
console.log(listener)
})
readableStream.on('warning', listener => {
console.log(listener)
})
var png = sharp().png()
var fileswitch = new FileSwitch();
readableStream.pipe(png).pipe(fileswitch)
出力なし
は sh にパイプされるデータですarp でエラーが発生しましたか?
– マット
2020 年 9 月 3 日 4:01
@Matt いいえ、何らかの理由ではありません。停止するまでに 3 つのテキスト チャンクを読み取り可能にプッシュする間隔があり、プロセスはエラーなしで終了します。
– ブダイス
2020 年 9 月 3 日 4:28
.on('error を追加9;、console.error) ハンドラーと .on('warning'。failOnError オプションを設定する可能性があります。
– マット
2020 年 9 月 3 日 4:37
@Matt 提案されたコードでスレッドを更新しました。出力は変わりません。
– ブダイス
2020 年 9 月 3 日 14:54
------------------------
readableStream にプッシュされているデータのチャンクは、sharp で png に変換できる有効な画像形式ではありませんでした。エラー イベント リスナーを png tran に追加する正しいエラーが表示されました。