Ich bin neu in Meteor zu lesen. Ich verwende folgenden Code, um eine Datei zu lesen, die auf dem Server gespeichert ist.Meteor synchronen und asynchronen Aufruf einer Datei
Client-Seite
Meteor.call('parseFile', (err, res) => {
if (err) {
alert(err);
} else {
Session.set("result0",res[0]);
Session.set("result1",res[1]);
Session.set("result2",res[2]);
}
});
let longitude = Session.get("result0");
let latitude = Session.get("result1");
var buildingData = Session.get("result2");
Server Side
Meteor.methods({
'parseFile'() {
var csv = Assets.getText('buildingData.csv');
var rows = Papa.parse(csv).data;
return rows;
}
})
Das Problem ist, während ich einen Anruf es braucht Zeit, machen das Ergebnis zurück und damit zu schicken, wo i verwende Breite und Länge, geben undefined und Seitenumbrüche. Also, gibt es eine Lösung, um dieses Problem zu vermeiden. Eine der Lösungen kann sein, einen synchronen Aufruf zu machen und darauf zu warten, dass das Ergebnis zurückgegeben wird.
„Einer der Lösung kann einen synchronen Anruf zu“, auf dem Client nicht, nein. Sie können keine synchronen Aufrufe auf dem Client ausführen. Sie müssen Ihre Seite dafür stabil machen. Ich würde vorschlagen, eine "Lade-Seite" zu implementieren, die wartet, bis die Sitzungsvariablen erst gesetzt werden, dann rendern Sie die Seite, die gerade bricht. –