我正在尝试使用 StreamSaver 下载大文件 (500mb - 2gb) 它在 Chrome 上工作正常但是 正如你在这里看到的
ReadableStream {locked: false}
locked: false
__proto__: ReadableStream
cancel: ƒ cancel()
constructor: ƒ ReadableStream()
getReader: ƒ getReader()
locked: (...)
pipeThrough: ƒ pipeThrough()
pipeTo: ƒ pipeTo()
tee: ƒ tee()
Symbol(Symbol.toStringTag): "ReadableStream"
get locked: ƒ locked()
__proto__: Object
但是在 Firefox 上:-
ReadableStream
locked: false
<prototype>: object
cancel: function cancel()
constructor: function ReadableStream()
getReader: function getReader()
locked:
tee: function tee()
<get locked()>: function locked()
<prototype>: Object { … }
如您所见,firefox 上不存在 pipeTo 函数。 这是我的下载事件函数
function down (event){
console.log(event.data.stream());
const stream = event.data.stream();
const fileStream = streamSaver.createWriteStream(fileNameRef.current);
if( stream.pipeTo){
stream.pipeTo(fileStream);
}
const peer = peerRef.current;
peer.write(JSON.stringify({ wait:true}));
}
有什么方法可以让它支持跨浏览器吗?
最佳答案
ReadableStream#pipeTo()
and ReadableStream#pipeThrough()
are not supported in Firefox (还),因为他们需要支持 WriteableStream
s, which Firefox does not yet support .一些polyfills are availble .
关于javascript - Firefox 中不存在 ReadableStream.pipeTo() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63080785/