MDN,caniuse.com和Microsoft Edge自己的"Platform Status"页面都声明,自版本号16299+(2017年9月26日发行)以来,Microsoft Edge支持ReadableStream
。
但是,当我尝试在最新的Edge(Microsoft Edge 44.17763.1.0,Microsoft EdgeHTML 18.17763)中创建ReadableStream时,出现错误Function expected
。
两者
new ReadableStream()
和
new ReadableStream({
start: function(controller) {},
pull: function(controller) {},
cancel: function() {}
})
抛出Function expected
错误。省略new
也不起作用。
我在做什么错了?
答案 0 :(得分:0)
您可以尝试使用以下代码在Edge中读取数据:
function pump(reader, context) {
return reader.read().then(function (result) {
if (result.done) {
console.log('ReadableStreamReader: complete! Received ' + context.receivedLength);
} else {
var chunk = result.value;
console.log('ReadableStreamReader: Partial chunk, chunkSize = ' + chunk.byteLength);
context.receivedLength += chunk.byteLength;
return pump(reader, context);
}
}).catch(function (e) {
throw e;
});
}
function fetchVideo() {
var url = 'xxxxxxxx';
var headers = new Headers();
var param = {
method: 'GET',
headers: headers,
mode: 'cors',
cache: 'default'
};
var context = {
receivedLength: 0
};
fetch(url, param).then(function (res) {
console.log('Content-Length: ' + res.headers.get('Content-Length'));
return pump(res.body.getReader(), context);
}).catch(function (e) {
throw e;
});
}
答案 1 :(得分:0)
根据ReadableSream doc example,我在Edge 44上重现了该问题,但在Edge 42上运行良好。因此,我认为该问题与Edge 44有关,作为一种解决方法,我建议您尝试将Edge版本降级为42版本。而且,我将尝试将此问题反馈给Edge Platform。