Ich lade ein Bild in ein Formular hoch und das Formular wird an die Firebase-Datenbank gesendet und ich möchte auch die Bild-URL an die Firebase-Datenbank senden. Wie warten, bis die asynchrone Funktion abgeschlossen ist
var {image} = this.state;
var {url} = this.state;
var that = this;
var storageRef = firebase.storage().ref('students_images/' + image.name);
storageRef.put(image).then(function(snapshot) {
that.setState({
url: snapshot.downloadURL
});
});
var studRef = firebaseRef.child('students');
var newStudRef = studRef.push().update({
name: val['name'].value,
email: val['email'].value,
age: val['age'].value,
date: val['jdate'].value,
course: val['course'].value,
imgUrl: url
});
Aber das Problem ist, dass die Bild-URL von einer asynchronen Funktion kommt und es dauert ein wenig die URL zurück geben, aber die Form sofort vorgelegt bekommen, so dass der Wert von imgUrl
setzt nicht definiert.
http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call –
können Sie mich nach meinem Code führen –