0
我收到這種奇怪的行爲,其中對象的鍵值對的輸出被假定爲未定義,儘管它清楚地在對象中定義並且正在打印輸出。我的對象返回控制檯中定義的值,但直接訪問時未定義
我的代碼如下所示:
addLocation(loc: any) {
this.getLocationGPSFromFirebase(loc.$key).then(result => loc = Object.assign(loc, result));
console.log(loc);
this.addLocationToLocalArray(loc);
}
的console.log
的瀏覽器的輸出是: 對象{地址: 「blablabla」 城市:對象
{address: "blablabla"…}
address: "blablabla"
latitude: 37.412368
longitude: 6.0755334
$exists: function()
$key: "uniqueKeyFromFirebase"
__proto__: Object
我的代碼對象創建並隨後推送到陣列:
addLocationToLocalArray(loc: Location) {
console.log(loc.latitude, loc.longitude);
this.tourLocs.push({
address: loc.address,
latitude: loc.latitude,
longitude: loc.longitude
});
}
輸出在console.log(loc.latitude, loc.longitude);
的t爲:
undefined, undefined
當我打印的陣列,它看起來像這樣:
[Object]
0: Object
address: "blablabla"
latitude: undefined
longitude: undefined
__proto__: Object
length: 1
__proto__: Array(0)
這是絕對怪異的行爲,我不知道是什麼原因造成的。
你必須在調用'addLocationToLocalArray'之前等待承諾!沒有辦法立即得到它。調用'然後'不會阻止。 – Bergi
感謝您的幫助。我沒有尋找合適的條款。我應該刪除問題還是保持開放?不知道這個規則。 – Spurious
已關閉,您不必刪除它。 – Bergi