Я не понимаю, почему я не могу вызвать createUser (..)
Сначала, renderButton () - это вызов, затем initClient (), но "this" не определено в этой функции, почему? Я предполагаю, что из-за этого я не могу вызывать другие функции.
edit: я понял, что this
уже не определено в начале initClient()
. Если я изменю gapi.load('client:auth2', this.initClient);
на gapi.load('client:auth2', this.initClient());
, this
будет доступным, но client
не будет: /
Пожалуйста, просветите меня!
public renderButton() {
gapi.load('client:auth2', this.initClient);
}
public initClient() {
let arr = [sessionStorage.getItem("DISCOVERY_DOCS")]
gapi.client.init({
apiKey : sessionStorage.getItem("API_KEY"),
clientId : sessionStorage.getItem("CLIENT_ID"),
discoveryDocs : arr,
scope : sessionStorage.getItem("SCOPES")
}).then(function () {
gapi.auth2.getAuthInstance().signIn();
const authInstance = gapi.auth2.getAuthInstance();
authInstance.grantOfflineAccess()
.then((res) => {
this.createUser(authInstance.currentUser.ie, res.code, "GMAIL");
});
}, function (error) {
console.log(error);
});
}
public createUser(googleUserJson, code, source) {
// do something
}