Я пытаюсь загрузить библиотеку аутентификации Google с помощью обещаний, но я терпеть неудачу, когда пытаюсь вызвать gapi.auth2.getAuthInstance() и вернуть ее в обещание;Загрузка GoogleAuth библиотеки с обещаниями
Вот как я это делаю:
var loadPlatform = function ($q) {
var deferred = $q.defer(),
platform = document.createElement('script');
platform.src ='https://apis.google.com/js/platform.js';
platform.type = 'text/javascript';
platform.async = true;
platform.defer = true;
platform.onload = deferred.resolve;
platform.onerror = deferred.reject;
document.body.appendChild(platform);
return deferred.promise;
};
//I return this from other function
return loadPlatform($q)
.then(function() {
var deferred = $q.defer();
gapi.load('auth2', function() {
deferred.resolve(gapi.auth2);
});
return deferred.promise;
})
.then(function (auth2) {
//This function retuns Promise
//https://developers.google.com/identity/sign-in/web/reference#gapiauth2initparams
return auth2.init(params);
})
.then(function (GoogleAuth) {
//Here I should have solved GoogleAuth object
});
Все работает, пока я не вернусь auth2.init (PARAMS), то браузер зависает. Что здесь происходит?