上下文
在我当前的应用程序中,Chrome扩展程序会记录所有网站访问并添加到Firebase中,使用该功能可以获取当天访问过的网站对象列表。
问题
现在从那些我计划将唯一名称提取到列表中的对象,这会带来一些问题,因为保存这些对象的列表似乎并不存在。当我将它登出时,它显示为> []!'下面的值刚刚评估',然后显示这些项的值。
但是当我尝试使用索引访问它们时,它会显示 undefined 。即使在运行调试器时,由于某种原因它似乎也会给出一个空列表,但正如前面提到的那样,列表的正常console.log会给出所需的结果。
示例代码
function Master() {
firebase.initializeApp(config);
let that = this;
this.http_usage = this.get_http();
this.https_usage = this.get_https();
this.todays_usage = this.get_today_sites();
this.site_names = [];
console.log(this.todays_usage);
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
console.log(request.message);
if (request.message === "hello") {
sendResponse({farewell: [that.http_usage.length, that.https_usage.length]});
}
});
this.init();
}
get_today_sites: function () {
let content = [];
let start = new Date();
start.setHours(0, 0, 0, 0);
start = start.getTime();
let end = new Date();
end.setHours(23, 59, 59, 999);
end = end.getTime();
let ref = firebase.database().ref('websites/');
ref.orderByChild("time").startAt(start).endAt(end).once('value', function (data) {
data.forEach(function (snapshot) {
content.push(snapshot.val());
})
});
return content;
},
的console.log(this.todays_usage)
>[]
0:Object
protocol:"https:"
time: 1496523823397
time_spent: 17
url:"www.google.ee"
__proto__:
1:Object
....
157:Object
....
的console.log(this.todays_usage [0])
未定义