Можно ли использовать 2 или более потоков одновременно с can-nd json -stream? - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь прочитать данные из nd json с помощью can-nd json -stream. Если я запускаю этот код сразу с 2 выборками, я получаю испорченные данные. Часть данных из первого файла находится внутри второго файла. Вот такая скрипка https://jsfiddle.net/benderlio/k3zxwty0/2/

<script src='https://unpkg.com/can-ndjson-stream@1.0.2/dist/global/can-ndjson-stream.js'></script>

<script>
    const streamerr = e => {
        console.warn("Stream error");
        console.warn(e);
    }

    const mainD1 = [];
    const mainD2 = [];

    fetch("https://benderlidze.github.io/d3worldmap/ndjson1.json").then((response) => {
        return can.ndjsonStream(response.body);
    }).then(todosStream => {
        var reader = todosStream.getReader();

        reader.read().then(read = result => {
            if (result.done) {
                console.log("Done.");
                return;
            }

            mainD1.push(result.value);

            reader.read().then(read, streamerr);
        }, streamerr);
    });

    fetch("https://benderlidze.github.io/d3worldmap/ndjson2.json").then((response) => {
        return can.ndjsonStream(response.body);
    }).then(todosStream => {
        var reader = todosStream.getReader();

        reader.read().then(read = result => {
            if (result.done) {
                console.log("Done.");

                return;
            }


            mainD2.push(result.value);

            reader.read().then(read, streamerr);
        }, streamerr);
    });


</script>
...