У меня есть небольшая проблема с использованием взаимодействия клиент-сервер в приложении Google Apps Script Web App.google.script.run.withSuccessHandler (onSuccess). onSuccess не работает внутри конструктора
Мои code.gs содержит:
function loadPetName() {
Logger.log('Client ask a Pet Name');
// use Google apps UserProperties as default storage
var storage = PropertiesService.getUserProperties();
return JSON.parse(storage.getProperty('name');
}
Pet.html является:
<script>
// CLASS Pet
function Pet() {
// CONSTRUCTOR
console.log('Creating new Pet');
var petName;
// Get pet name from outer storage
console.log('Loading pet name from storage...');
google.script.run.withSuccessHandler(onSuccessLoad).loadPetName();
var onSuccessLoad = function(name) {
console.log('run onSuccessLoad');
this.petName = name;
alert('Pet Name is ' + name)
};
// METHODS ...
}
</script>
init.html является:
<script>
function init() {
console.log('Initialization');
var cat = new Pet();
}
</script>
index.html содержит:
<body onload=init()>
...
После index.html открыт в браузере я вижу в консоли:
Initialization
Creating new Pet
Loading Pet Name from storage...
Но нет «запустить onSuccessLoad».
В консоли Google Script вы можете увидеть: «Клиент спрашивает имя любимчика». Все работает нормально, но функция onSuccessLoad не запускается.
Если в Pet.html заменить
google.script.run.withSuccessHandler(onSuccessLoad).loadPetName();
в
google.script.run.withSuccessHandler(console.log('SuccessHandler fired')).loadPetName();
Мы видим в консоли: "SuccessHandler уволили".
Где моя проблема?
Спасибо!