Ich schreibe ein AngularJS-Plugin für Umbraco und habe eine einfache Ansicht, Controller und Service erstellt. Aber aus irgendeinem Grund dauert mein Versprechen eine Weile.
Ich habe den integrierten $ Q-Dienst verwendet, um mein Versprechen zu erstellen und zurückzugeben, ich habe meine Variablen ausgeloggt und kann sehen, wann der asynchrone Dienst beendet wird, aber es gibt einen merklichen Zeitunterschied zwischen dem und der Auflösungsfunktion.
Ich habe seit der Entdeckung entdeckt, wie es auf Umbracos GetRemainingTimeout Service wartet, bevor es verrechnet wird.
Kann jemand erklären, warum das passieren könnte?
viewController.js
angular.module('umbraco')
.controller('JaywingAnalyticsHelper.ViewController', function ($scope, googleService) {
googleService.checkAuth().then(function (signedIn){
$scope.isAuthorised = signedIn;
console.log(signedIn);
});
});
googleService.js
angular.module("umbraco")
.service('googleService', function ($q) {
var clientId = 'REMOVED_FOR_PRIVACY',
scopes = ['https://www.googleapis.com/auth/analytics.readonly'],
deferred = $q.defer();
this.checkAuth = function() {
gapi.load('auth2', function() {
gapi.auth2.init().then(function() {
var googleAuth = gapi.auth2.getAuthInstance();
var signedIn = googleAuth.isSignedIn.get();
console.log(signedIn);
deferred.resolve(signedIn);
}, function(){
deferred.reject(false);
});
});
return deferred.promise;
};
});
Umbraco Version - 7.5.12
abgewinkelte Ausführung - 1.1.5
Definiere * "merkbaren Zeitunterschied" *. Beachten Sie, dass die eckige Version extrem alt ist – charlietfl
Es variiert, aber nach dem ersten Konsolenprotokoll kann es bis zu 10 Sekunden dauern, bevor die Auflösungsfunktion ausgeführt wird. – StueyKent