Chrome DevTools Fehler: "Fehler beim speichern in die variable "temp"."
Ich bin mit Knoten Affe zu Debuggen mein NodeJS-app.
Passiert es Häufig, dass wenn ich auf "Speichern als Globale Variable" in meinem Chrome-Konsole sagt es "Fehler beim speichern in die variable "temp"."
console.log({why:'dont', you:'work?'})
Passiert es auch in diesem jsfiddle
1) mache ich etwas falsch?
2), Warum dies geschieht?
Chrome: 50.0.2661.102 (64-bit)
OSX El Capitan 10.11.4
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich sehen kann, zwei Gründe, warum das Speichern Als Globale Variable nicht funktionieren würde:
1. Falsche Konsole Kontext Ausgewählt
Dies ist wohl ein Chrome-bug ist, aber Sie können nur speichern Sie ein Objekt als global, wenn die Konsole den selben Kontext wie der code, protokolliert das Objekt.
In der Praxis bedeutet dies, müssen Sie möglicherweise wählen Sie die richtige IFrame oder web-worker.
Zum Beispiel auf jsFiddle:
In der normalen jsFiddle-editor den Kontext, ich bin immer ein Fehler. Aber es funktioniert, wenn ich den Rahmen auf den Inhalt der Geige selbst:
2. Garbage Collection
In Ordnung für Chrome geben Sie eine Referenz auf das Objekt, das Objekt noch im Speicher sein. Wenn das nicht der Fall kann es nur ein Fehler ausgelöst.
Allerdings bin ich mir ziemlich sicher, dass in der Konsole Kräfte V8 zu halten eine Referenz auf den Wert.
iframe
)Müssen Sie das Objekt in der Konsole selbst, als die Referenz auf das Objekt eingehalten werden muss, die von Chrome. Setzen Sie einfach das folgende in die Konsole statt:
Wenn Sie check out diese revision, wo das feature Hinzugefügt wurde, heißt es:
Das problem, nach meinem Verständnis, ist, dass
console.log
ist die Ausgabe einer string-Repräsentation des Objekts, und nur mit dem Objekt-formatter-display ist es schön. Das Objekt existiert nicht mehr. Wenn Sie ein Objekt anlegen, über die Konsole selbst, Chrome speichert das Objekt selbst im Speicher. Wenn Sie angehalten haben, die auf einen Haltepunkt und Gültigkeitsbereich lokal Variablen, diese können auch gespeichert werden, Global, weil Sie auch in Erinnerung.Eine Sache, die Sie tun können, in Ihrem code, wenn Sie haven ' T got zirkuläre Referenzen:
In der Konsole kopiere die Ausgabe und füge es in eine
JSON.parse
nennen:Die variable existiert jetzt in den Speicher, so dass Sie es speichern können.