Как остановить потоковое воспроизведение папапарса после некоторых результатов - PullRequest
0 голосов
/ 04 сентября 2018

Я использую PapaPase для анализа большого файла CSV в режиме чанков.

Я проверяю данные csv и хочу остановить потоковую передачу, если проверка не удалась.

Но я не могу остановить потоковую передачу после некоторого анализа.

Я пытался прекратить использовать return false из обратного вызова чанка, но он не работает.

Ниже приведен код.

$("#fileselect").on("change", function(e){
    if (this.files.length) {
        var file = this.files[0]
        count = 0;
        Papa.parse(file, {
            worker: true,
            delimiter: "~~",
            skipEmptyLines:true,
            chunk: function (result) {
                count += result.data.length;
                console.clear();
                console.log(count);
                if (count>60000) {
                    return false;
                }
            },
            complete: function (result, file) {
                console.log(result)
            }
        });
    }
});

1 Ответ

0 голосов
/ 15 января 2019

Chunk и Step, оба имеют доступ к парсеру, вы можете использовать его для приостановки, возобновления или (как вы можете захотеть) прерывания.

step: function(results, parser) {
console.log("Row data:", results.data);
console.log("Row errors:", results.errors);
}’

Итак, в вашем случае вам нужно будет сделать это (не проверено):

$("#fileselect").on("change", function(e){
    if (this.files.length) {
        var file = this.files[0]
        count = 0;
        Papa.parse(file, {
            worker: true,
            delimiter: "~~",
            skipEmptyLines:true,
            chunk: function (result, parser) {
                count += result.data.length;
                console.clear();
                console.log(count);
                if (count>60000) {
                    //return false;
                    parser.abort(); // <-- stop streaming
                }
            },
            complete: function (result, file) {
                console.log(result)
            }
        });
    }
});

Посмотрите документацию по шагу и чанку.

https://www.papaparse.com/docs

Надеюсь, это помогло!

...