У меня проблема с сохранением вызова API Google в качестве переменной.Я считаю, что это связано с тем фактом, что переменная вызывается в функции обещания, которая, как я понимаю, не передается глобальной переменной после ее выполнения.Результатом текущего кода является 'null', который является начальным значением переменной.
Я удалил большую часть кода, чтобы показать необходимый фрагмент:
var MyApp {
name: null
};
function makeApiCall() {
gapi.client.people.people.get({
'resourceName': 'people/me',
'requestMask.includeField': 'person.names'
}).then(
function(resp) {
MyApp.name = resp.result.names[0].givenName;
return MyApp.name;
});
}
function getIP(json) {
makeApiCall();
var person = MyApp.name;
document.write(person);
}
В основномЯ хотел бы, чтобы значение MyApp.name (глобальная переменная, созданная ранее в скрипте) изменилось с «null» на ответ API, так что значение, напечатанное в getIP (json), имеет значение nameName вместо null, которое является моим текущимвыход.
Другими словами, когда я ссылаюсь на MyApp.name в функции getIP (json), он должен ссылаться на «resp.result.names [0] .givenName» вместо «null».
Я какое-то время искал по этой теме, но не добился успеха, не зная, что не работает.