【发布时间】:2014-01-27 11:36:13
【问题描述】:
我正在为 Google Analytics API 使用 javascript,但我只是 JS 的新手。我有 C++ 和 Java 知识,我可以与逻辑思维相处,但有些事情让我感到困惑。在 GA API 中,我可以像这样调用函数:
gapi.client.analytics.data.ga.get({'ids':'<tableID>',
'start-date':'<startDate>',
'end-date':'<endDate>',
'metrics':'<metrics>',
'filters':'<filters>',
'samplingLevel':'HIGHER_PRECISION',}).execute(putToVar);
putToVar() 是一个用户定义的函数,定义如下:
function putToVar(results)
{
//do processing with the results
}
据我了解,.execute() 方法用于为异步调用gapi.client.analytics.data.ga.get() 调用回调函数。所以我假设function1().execute(function2) 所做的是以function1 的返回值作为参数调用function2?这是正确的吗?
我需要应用几个不同的过滤器并将它们存储在一个数组中以便在需要时检索,无论 API 调用是否返回结果对象(它是一个异步调用,所以我不'不知道响应什么时候来,只有回调函数可见)。
我想将存储返回对象的数组的维度传递给回调函数,以便以后可以按需检索它们,而不必担心处理响应的顺序。我这样说是因为,最初我尝试了一个 for 循环,我得到对 API 调用的响应的顺序与我为查询放置 API 调用的顺序不同,因此存在不匹配。
由于引用使用此方法调用回调函数,我想知道如何在使用.execute() 方法时将附加参数传递给这样的回调函数,当我编写putToVar() 函数时像这样:
function putToVar(results,arrayDim)
{
//Process Results
//Store in Array[arrayDim] the required value
}
我希望我已经说清楚了。 我已阅读以下帖子
- How do I pass multiple arguments into a javascript callback function?
- passing arguments to callback
- How to explain callbacks in plain english? How are they different from calling one function from another function?
- How to pass additional arguments to callbacks and also access default parameters?
但他们似乎都没有使用.execute() 方法,我不知道如何使用他们所说的。或者,是否以及如何修改我的 .execute() 方法(回调执行的类型)以帮助实现我的目的。
【问题讨论】:
标签: javascript function callback google-analytics arguments