我可以更改此代碼以便返回承諾嗎?谷歌日曆API調用可以在角廠內返回一個承諾嗎?
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;
我的控制器:
$scope.hanleAPICall = function(event) {
factoryName.fun1(event);
};
這個代碼是從谷歌calendar api採取和IM努力實現它在angularjs工廠,但我需要從API的返回事件的結果承諾儘快回覆事件,但在我的頁面內沒有任何事情發生。
'gapi.client.load(...)'和其他收益的承諾? –
我認爲他們都沒有返回承諾,如您可以在[鏈接](https://developers.google.com/google-apps/calendar/quickstart/js#step_2_set_up_the_sample)中看到的 – Dimitar
如果返回值不是承諾您始終可以使用角度$ q模塊將其變爲承諾。 –