Ich habe diese Funktion, die ein Bild zu Cloudinary hochladen und dann den Status der Komponente als resultierende URL festlegen. Hier ist, wie es aussieht:Best Practices für das Warten auf das Ergebnis einer Funktion in Meteor?
loadFileFront: function(e) {
var imageFrontURL = window.webkitURL.createObjectURL(e.target.files[0]);
var imageFrontFile = e.target.files[0];
var returnedURL = '';
Cloudinary._upload_file(imageFrontFile, {}, function(err, res) {
if (err){
console.log(err);
return;
}
console.log(res.url);
});
this.setState({
imageFront: returnedURL,
imageFrontFile: imageFrontFile
})
},
(ignorieren, die oberste Zeile mit createObjectURL). Ich habe eine Reihe von Untersuchungen gemacht, wie man das am besten strukturiert, so dass setState auf den Upload wartet, um die res.url zu vervollständigen, die zurückgegeben wird, und den Zustand damit richtig aktualisiert. Wenn ich res.url console.log, erscheint es nach ein paar Sekunden. Wenn ich versuche, returnedURL auf res.url zu setzen, gibt es keine Wartezeiten und es springt einfach durch den Rest der Funktion. Was ist der beste Weg, auf das Ergebnis des Cloudinary-Uploads hier zu warten? Ich habe über die Unterstützung von Async/Abwarten in Meteor 1.3 gelesen, aber ich hatte Probleme herauszufinden, wie man diese Cloudinary-Upload-Methode in einer Meteor-Methode auf dem Server konfiguriert. Jede Hilfe wird geschätzt!
Danke, das war die Lösung! Nur benötigt, um das richtige in SetState zu übergeben. –