Kann ich diesen Code ändern, damit er ein Versprechen gibt?Kann Google Kalender API Anruf ein Versprechen in eckigen Fabrik zurückgeben?
var calApi = {
fun3: function() {
gapi.auth.authorize(
{
'client_id': CLIENT_ID,
'scope': SCOPES.join(' '),
'immediate': true
}, calApi.fun2);
},
fun2: function(authResult) {
if (authResult && !authResult.error) {
calApi.fun4();
}
},
fun1: function(event) {
gapi.auth.authorize(
{client_id: CLIENT_ID, scope: SCOPES, immediate: false},
calApi.fun2);
return false;
},
fun4: function() {
gapi.client.load('calendar', 'v3', calApi.fun5);
},
fun5: function() {
// some code
// returning the result...
}
};
return calApi;
mein Controller:
$scope.hanleAPICall = function(event) {
factoryName.fun1(event);
};
dieser Code von Google gemacht calendar api und im Versuch, es in einer AngularJS Fabrik zu implementieren, aber ich brauche, um das Ergebnis der Ereignisse aus der api als zurückzukehren Versprechen Sie, dass ich die Ereignisse zurückgebe, aber nichts passiert auf meiner Seite.
'gapi.client.load (...)' und andere Erträge versprechen? –
ich denke, keiner von ihnen gibt Versprechen zurück, wie Sie im [link] sehen können (https://developers.google.com/google-apps/calendar/quickstart/js#step_2_set_up_the_sample) – Dimitar
Wenn der Rückgabewert kein Versprechen ist Sie können es immer in ein Versprechen mit eckigen $ q Modul machen. –