想要将以下服务转换为Angular 2服务。我在这里使用谷歌api。我得到的主要问题是返回Promise,因为它与Angular 1.x不相似。
getLoginStatus: function () {
var deferred = $q.defer();
gapi.auth.authorize({client_id: dataStore.getData('CLIENT_ID'), scope: dataStore.getData('SCOPES'), immediate: true},function(response){
var res = {};
res = response;
deferred.resolve(res);
});
return deferred.promise;
}
答案 0 :(得分:5)
Angular 2使用RxJS 5 Observables
:
以下是您的代码的1:1翻译:
getLoginStatus: function () {
return new Observable(function(observer) {
gapi.auth.authorize({client_id: dataStore.getData('CLIENT_ID'), scope: dataStore.getData('SCOPES'), immediate: true},function(response){
observer.next(response);
observer.complete();
});
}