1 回答
![?](http://img1.sycdn.imooc.com/54584cd10001404b02200220-100-100.jpg)
TA贡献1828条经验 获得超6个赞
这个答案怎么样?
问题 1 的答案:
您想知道区别res.items[0].id和res.getItems()[0].getId()for var res = Analytics.Management.Webproperties.list(AcountID)。
value1和value2下面的脚本是一样的。但是itemsandgetItems分别是键和函数。
var res = Analytics.Management.Webproperties.list(AcountID);
var value1 = res.items[0].id;
var value2 = res.getItems()[0].getId();
似乎可以通过添加get到顶部并将其作为函数运行来检索每个值。函数名必须是驼峰式大小写。
但是我在官方文档和脚本编辑器的补全功能中都没有找到这样的功能。所以我一直认为这样的功能可能是隐藏的功能。
在Advanced Google Services中,我们可以通过脚本编辑器的完成功能来确认创建API请求体的功能。Ref但是虽然找不到检索值的函数,但可以将它们用作隐藏方法。这样的函数也可以确认其他API有这样的隐藏方法。
其他情况:
例如,作为另一种情况,在 Sheets API 中,您可以在以下脚本中看到隐藏的函数。
var r = Sheets.Spreadsheets.Values.batchGet(spreadsheetId, {ranges: ["Sheet1", "Sheet2"]});
var value1a = r.spreadsheetId;
var value1b = r.getSpreadsheetId();
var value2a = r.valueRanges;
var value2b = r.getValueRanges();
在这种情况下,value1a和value1b都是一样的。并且也value2a和value2b是一样的。为了确认是否getSpreadsheetId()和getValueRanges()可以使用,我用下面的脚本。
var r = Sheets.Spreadsheets.Values.batchGet(spreadsheetId, {ranges: ["Sheet1", "Sheet2"]});
Logger.log(typeof r.getSpreadsheetId)
Logger.log(typeof r.getValueRanges)
如果它可以用作函数,则日志显示function。如果它不能用作函数,undefined则返回。
问题 2 的答案:
您想了解execute()google-api-javascript-client。
我认为答案可以在Using Promises 中看到。
从回调迁移到承诺
在result已达成的承诺值的参数等同于第一个参数execute的回调。要更新您的代码以使用 Promise,请更改您的代码,如下面的前后示例所示。
以下示例显示了如何使用回调:
gapi.client.request({
'path': 'plus/v1/people',
'params': {'query': name}
}).execute(function(resp, rawResp) {
processResponse(resp);
});
您可以重写上面显示的示例以使用如下所示的承诺:
gapi.client.request({
'path': 'plus/v1/people',
'params': {'query': name}
}).then(function(resp) {
processResponse(resp.result);
});
添加回答
举报