【发布时间】:2016-05-09 21:34:24
【问题描述】:
我正在尝试通过 Angular 使用 Google Analytics API。我先加载分析脚本
<script src="https://apis.google.com/js/client.js"></script>
然后我 console.log api 脚本创建的全局 gapi 变量。这将返回对象,如我所料,带有auth 属性。但是gapi.auth 出现undefined。
当我让函数等待两秒钟时,它确实按预期运行。这说明了会发生什么:
然而所有的属性都存在于第一个对象中:
为什么后面的有预览,前面的没有?我想这与为什么我只能在 2 秒后访问它们的属性有关。
更新:
我已在脚本顶部添加此检查器以等待 gapi.auth 加载...但它永远不会完成:
while (gapi.auth === undefined) {
console.log("Still undefined");
}
console.log(loaded now");
【问题讨论】:
-
我不完全确定我理解你的问题。但是在您实际向 api 发出请求之前,lib 不会请求身份验证信息,并且 api 将需要几秒钟的时间来响应。
-
我的问题是为什么当 gapi 明显具有 auth 属性时 gapi.auth 最初记录为未定义
-
是吗? jsfiddle
-
是的,您可以在第二个屏幕截图中看到它在两种情况下都具有 auth 属性。不过,只有在第二个中它才会自行注销
-
"为什么后面的有预览而前面的没有?" - 有。预览为
{}- 对象在记录时为空。
标签: javascript google-analytics-api console.log google-api-js-client