【问题标题】:How do I create a ReadableStream in Microsoft Edge?如何在 Microsoft Edge 中创建 ReadableStream?
【发布时间】:2019-08-13 03:46:09
【问题描述】:

MDNcaniuse.com 和 Microsoft Edge 自己的 "Platform Status" 页面都表明 Microsoft Edge 自内部版本号 16299+(2017 年 9 月 26 日发布)起支持 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 也不起作用。

我做错了什么?

【问题讨论】:

  • 它可以在其他浏览器中运行吗?
  • 在 Chrome 和 Firefox 中工作

标签: javascript microsoft-edge web-standards


【解决方案1】:

您可以尝试使用以下代码读取 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;
    });
}

【讨论】:

  • 不幸的是,这不允许我创建一个我可以控制的 ReadableStream - 所以这不是我想要的
【解决方案2】:

根据ReadableSream doc example,我在我的 Edge 44 上重现了这个问题,但它在 Edge 42 上运行良好。所以,我想这个问题与 Edge 44 有关,作为一种解决方法,我建议你可以尝试降级边缘版本到 42 版本。并且,我会尝试将此问题反馈给 Edge Platform。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 2020-09-21
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多