Сделать размер выходного буфера потока API выборки заданным значением - PullRequest
0 голосов
/ 27 октября 2018

У меня есть последовательность выборки, где я пытаюсь сделать размер буфера одинаковым каждый раз. Я определяю размер, который хотел бы, чтобы он был и с autoAllocateChunkSize, и с highWaterMark, но ни один из них, похоже, ничего не делает. В следующем примере я ожидаю, что выходные данные console.log будут иметь то же значение, что и переменная chunkLength. Однако значение всегда отличается и очень мало по сравнению с ожидаемым размером.

var streamUrl = 'http://www.url.to/stream.ts';
var chunkLength = 3000000;

fetch(streamUrl).then((response) => {

    const reader = response.body.getReader();

    const stream = new ReadableStream({

        autoAllocateChunkSize: chunkLength,
        queueingStrategy: { highWaterMark: chunkLength },

        start(controller) {

            function push() {

                reader.read().then(({ done, value }) => {

                    // Is there no more data to read?
                    if (done) {

                        controller.close();
                        return;

                    }

                    console.log(value); 
                    controller.enqueue(value);
                    push();

                });
            };
            push();
        }
    });
    return new Response(stream, { headers: { "Content-Type": "application/octet-stream" } });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...