2015-07-13 122 views
5

PapaParse對於其API的非同步回調函數。我想知道如何將它轉換爲承諾。例如:如何在PapaParse中使用Promise?

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

任何幫助,將不勝感激!

回答

11

的基本模式是

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

然後

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

在這種情況下,我將如何使塊運行? –

0

我想它可以與所有類型的變化可以用,我所提供的字符串進行解析時,雖然你可以使用它文件路徑或URL:

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