В приведенном ниже фиктивном коде, взятом в общем из примеров API Google, есть три функции - две, которые «требуются» для API, и одна RunMe (), которая запускает его. Если запрос электронной таблицы недопустим, я могу получить доступ к сообщению об ошибке, которое он возвращает, из функции handleQueryResponse (). Но для моих целей мне нужно иметь возможность проверить наличие response.isError () из функции runMe (). Это кажется простым, но я не могу получить этот ответный объект извне handleQueryResponse (). Это может быть связано с моим статусом новичка в JavaScript или из-за того, что API делает что-то странное.
Мне также кажется странным, что раскомментирует console.log (query); в функции getTableMeta () создает объект «Er», который выглядит как прототип, а не как представление фактического запроса.
Спасибо за предложения.
Приведенный ниже идентификатор электронной таблицы недействителен с буквой "z" в конце и действителен при его удалении.
function runMe() {
var foo = getTableMeta('0AtP_YtDJ532RdDcxZUl6Zkl4YkxKcEYzbld4ZDA4SlEz');
// console.log(response);
// console.log(response.getMessage());
// console.log(foo.getMessage());
}
// Get table metadata from Google
function getTableMeta(spreadsheet_id) {
var query = new google.visualization.Query('https://spreadsheets.google.com/a/google.com/tq?key=' + spreadsheet_id);
// console.log(query);
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
// alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage() + '. Please click Previous and enter a different spreadsheet ID.');
console.log(response.getMessage());
}
return response;
}
runMe();
Справочник по API