Je reçois ce comportement bizarre où la sortie d'une paire valeur/clé d'un objet est supposée non définie bien qu'elle soit clairement définie dans l'objet et qu'elle soit imprimée .Mon objet renvoie des valeurs définies dans la console mais indéfini lors de l'accès direct
Mon code ressemble à ceci:
addLocation(loc: any) {
this.getLocationGPSFromFirebase(loc.$key).then(result => loc = Object.assign(loc, result));
console.log(loc);
this.addLocationToLocalArray(loc);
}
La sortie du console.log
dans le navigateur est: Object {adresse: "blablabla", ville: Object
{address: "blablabla"…}
address: "blablabla"
latitude: 37.412368
longitude: 6.0755334
$exists: function()
$key: "uniqueKeyFromFirebase"
__proto__: Object
Mon code pour la création d'objet et poussée ultérieure vers le tableau:
addLocationToLocalArray(loc: Location) {
console.log(loc.latitude, loc.longitude);
this.tourLocs.push({
address: loc.address,
latitude: loc.latitude,
longitude: loc.longitude
});
}
t du console.log(loc.latitude, loc.longitude);
est:
undefined, undefined
Lorsque j'imprime le tableau, il ressemble à ceci:
[Object]
0: Object
address: "blablabla"
latitude: undefined
longitude: undefined
__proto__: Object
length: 1
__proto__: Array(0)
Ce comportement est tout à fait bizarre et je ne sais pas quelles sont les causes.
Vous devez attendre la promesse avant d'appeler 'addLocationToLocalArray'! Il n'y a aucun moyen de l'obtenir immédiatement. Appeler 'then' ne bloque pas. – Bergi
Merci pour l'aide les gars. Je ne cherchais pas les bons termes. Dois-je supprimer la question ou la laisser ouverte? Pas sûr des règles autour de cela. – Spurious
Il est déjà fermé, vous n'avez pas besoin de le supprimer. – Bergi