Ich versuche die Google Analytics API über Angular zu verwenden. Ich lade die Analytik Skript ersteWarum zeichnet Chrome Objekte zu unterschiedlichen Zeiten unterschiedlich auf?
<script src="https://apis.google.com/js/client.js"></script>
ich dann console.log
die globalen Variablen gapi
, dass die api-Skript erstellt. Dies gibt das Objekt wie erwartet mit einer auth
Eigenschaft zurück. Jedoch erscheint gapi.auth
undefined
.
Wenn ich die Funktion mache, warte zwei Sekunden, obwohl es wie erwartet ausgeführt wird. Dies veranschaulicht, was passiert:
jedoch alle Eigenschaften gibt es auch in dem ersten Objekt:
Warum die späteren eine Vorschau und die früheren nicht ? Ich könnte mir vorstellen, dass dies damit zusammenhängt, warum ich erst nach 2 Sekunden auf ihre Eigenschaften zugreifen kann.
UPDATE:
ich diesen Kontrolleur an der Spitze von meinem Skript hinzugefügt haben, zu warten, gapi.auth
zu laden ... aber es endet nie:
while (gapi.auth === undefined) {
console.log("Still undefined");
}
console.log(loaded now");
Ich bin mir nicht ganz sicher, ob ich Ihre Frage verstehe. Aber die Bibliothek wird keine Authentifizierungsinformationen anfordern, bis Sie tatsächlich eine Anfrage gegen die API stellen, und die API wird einige Sekunden brauchen, um zu antworten. – DaImTo
Meine Frage ist, warum die gapi.auth zunächst als undefiniert, wenn Gapi eindeutig eine Auth-Eigenschaft hat – Aron
Ist es? [jsfiddle] (https://jsfiddle.net/orpcmt8e/) –