我在 Javascript 中使用 Googles Analytics api。
它们提供了一种获取列表结果的方法,一旦执行完成,它就会调用带有结果的回调方法。
看起来像这样:
gapi.client.analytics.management.accounts.list().execute(handleAccounts);
...
function handleAccounts(results) {
if (!results.code) {
if (results && results.items && results.items.length) {
// See this code below.
} else {
console.log('No accounts found for this user.')
}
} else {
console.log('There was an error querying accounts: ' + results.message);
}
}
一般来说,这太棒了,但是......我需要一个所有子项目的扁平列表,所以我一直这样打电话:
$.each(results.items, function (index, value) {
gapi.client.analytics.management.webproperties.list({ 'accountId': value.Id}).execute(handleWebproperties);
// and so on..
})
问题是,如果在任何级别上你有多个项目,你最终会遇到多个异步调用,我不知道他们什么时候都完成了最终列表。
除了写一些东西来跟踪已经打了多少电话,然后等待总数回来。
我怎样才能很容易地知道他们什么时候都完成了?
谢谢。
总之:
一个用户可以有多个帐户,帐户可以有多个属性,属性可以有多个配置文件。
我需要用户所有帐户的所有配置文件。