J'essaie de mettre à jour l'image de profil de l'utilisateur avec AngularFire. J'utilise la méthode put
qui renvoie un promise
. Dans mon promise
j'utilise un observable
pour changer l'image URL
dans l'information de l'utilisateur. À la fin je change l'image URL
de l'élément DOM
de l'image à l'image URL
dans l'information de l'utilisateur. Le problème est que mon promise
essaie d'obtenir l'image de l'utilisateur URL
avant que mon observable
ne soit mis à jour. Y at-il un moyen de chaîner un observable
à promise
afin que promise
continue seulement si observable
est terminée? Voici mon code:Chaînage observable et prometteur
authService.ts
updatePicture(profilePicture){
//first put the pictuer in the storage
return storageRef.put(profilePicture)
.then(snapshot => {
downloadURL = snapshot.downloadURL;
})
//this is where I use the observable to update user info
.then(() => {
this.getUserAuth().subscribe(userAuth => {
userAuth.updateProfile({
displayName:userAuth.displayName,
photoURL:downloadURL
})
})
})
}
user.component.ts
// I want this "then" to only happen when my observable is complete.
authService.updatePicture().then(p => {
document.querySelector('img').src = this.userAuth.photoURL);
}