_formdataPolyfill2.default не конструктор выбрасывается, когда я пытаюсь использовать formdata-polyfill npm - PullRequest
0 голосов
/ 10 октября 2018

Я использую веб-работников для загрузки файла и отправляю файл в виде объекта formData, поскольку узнал, что веб-работник не имеет доступа к DOM. Я использовал formdata-polyfill вместо FormData по умолчанию, этовыдает эту ошибку, и я не знаю, как правильно использовать этот polyill.

вот мой код,

//trying to send the formdata-polyfill object to worker
require('formdata-polyfill');
    let data = new FormData();
    data.append('server-method', 'upload');
    data.append('file', event.target.files[0]);
    // let data = new FormData(event.target.files[0]);
    if (this.state.headerActiveTabUid === '1')
        this.props.dispatch(handleFileUpload({upload: 'assets', data}));
 //worker.js
 
 var file = [], p = true, url,token;
function upload(blobOrFile) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', url, true);//add url to upload
    xhr.setRequestHeader('Authorization', token);
    xhr.onload = function(e) {
    };
    xhr.send(blobOrFile);
}

function process() {
    for (var j = 0; j <file.length; j++) {
        var blob = file[j];

        const BYTES_PER_CHUNK = 1024 * 1024;
        // 1MB chunk sizes.
        const SIZE = blob.size;

        var start = 0;
        var end = BYTES_PER_CHUNK;

        while (start < SIZE) {

            if ('mozSlice' in blob) {
                var chunk = blob.mozSlice(start, end);
            } else {
                var chunk = blob.slice(start, end);
            }

            upload(chunk);

            start = end;
            end = start + BYTES_PER_CHUNK;
        }
        p = ( j === file.length - 1);
        self.postMessage(blob.name + " Uploaded Succesfully");
    }
}

self.addEventListener('message', function(e) {
    url = e.data.url;
    token = e.data.id;
    file.push(e.data.files);
    if (p) {
        process();
    }
});
...