2014-10-08 11 views
6

Bu soruyu sormaktan utanıyorum çünkü çok açık olmalıyım, ancak asenkron problemlerle uğraşırken oldukça zayıfım. Devam etmek için kafam karıştı.Javascript nesnesinde (Papa Parse'yi kullanarak) CSV'den ayrıştırılmış verileri al.

Uzak CSV'yi ayrıştırmak için Papa Parse (http://papaparse.com/docs.html#remote-files) kullanıyorum. Daha sonra kullanmak için ayrıştırmanın sonucunu saklamak istiyorum.

var dataset = {};  

    Papa.parse("http://path/to/some.csv", { 
     download: true, 
     dynamicTyping: true, 
     complete: function(results) { 
     dataset = results.data; 
     } 
    }); 

console.log(dataset); 

Bu, elbette, boş bir nesnede sonuçları konsoluna günlüğe: İşte benim kod. Veri kümesini kullanma girişimleri çalışmaz, çünkü veri kümesi nesnesi, kodun yürütüldüğü zamana kadar verilerini almadı. Birisi, lütfen benimle nasıl başa çıkabileceğimi açıklamama veya açıklamama yardım edebilir mi?

cevap

19

Veri kümesi değişkeninin işlevin dışında kullanılmasının bir nedeni var mı? Veri kümesinin doldurulmasını sağlamanın en kolay yolu, veri kümesini "tamamlandı" işlevinde, hemen sonra, tam olarak doldurulur.

Alternatif şöyle bir geri arama eklemektir:

function doStuff(data) { 
    //Data is usable here 
    console.log(data); 
} 

function parseData(url, callBack) { 
    Papa.parse(url, { 
     download: true, 
     dynamicTyping: true, 
     complete: function(results) { 
      callBack(results.data); 
     } 
    }); 
} 

parseData("tests/sample.csv", doStuff); 
+0

Bu tam ihtiyacım olan uyarlanmasını oldu. Hala geri bildirimleri ve uyumsuzluğu öğreniyorum, bu yüzden benim için bunu anlamsızlaştırdı. TEŞEKKÜR EDERİM!!!! – TheNovice

+0

Yup! Geri çekilme ekleyerek bir cazibe gibi çalıştı! Teşekkür ederim! – WizzyBoom

İlgili konular