JavascriptでGoogleAnalyticsAPIを使用しています。
これらはリストの結果を取得するメソッドを提供し、実行が完了すると、結果を使用してコールバックメソッドを呼び出します。
次のようになります。
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..
})
問題は、いずれかのレベルで複数のアイテムがある場合、複数の非同期呼び出しが発生し、最終的なリストを取得するためにそれらがすべて終了したかどうかはわかりません。
何回の呼び出しが行われたかを追跡するために何かを書く以外に、その合計が戻ってくるのを待ちます。
それらがすべて完了したことを簡単に知るにはどうすればよいですか?
ありがとう。
要約すれば:
ユーザーは複数のアカウントを持つことができ、アカウントは複数のプロパティを持つことができ、プロパティは複数のプロファイルを持つことができます。
ユーザーのすべてのアカウントのすべてのプロファイルが必要です。