2015-07-13 29 views
5

PapaParse ha una funzione di callback asynch per la sua API. Mi stavo chiedendo come posso convertirlo in una promessa. Per esempio:Come usare Promises con PapaParse?

Papa.parse(fileInput.files[0], { 
    complete: function(results) { 
     console.log(results); 
    } 
}); 

Qualsiasi aiuto sarebbe apprezzato!

risposta

11

Il modello di base è

Papa.parsePromise = function(file) { 
    return new Promise(function(complete, error) { 
    Papa.parse(file, {complete, error}); 
    }); 
}; 

Poi

Papa.parsePromise(fileInput.files[0]) . 
    then(function(results) { console.log(results); }); 
+0

come faccio a fare pezzi in questo caso? –

0

Credo che può essere utilizzato con tutti i tipi di variazioni, sto fornendo la stringa da analizzare anche se è possibile utilizzarlo con URL o percorso file:

const parseData = (content) => { 
    let data; 
    return new Promise((resolve) => { 
    Papa.parse(content, { 
     header: true, 
     delimiter: ',', 
     dynamicTyping: true, 
     complete: (results) => { 
     data = results.data; 
     } 
    }); 
    resolve(data); 
    }); 
};