角的1.x $ Q角到2.0测试版 [英] Angular 1.x $q to Angular 2.0 beta
本文介绍了角的1.x $ Q角到2.0测试版的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
本想跟踪服务转变为角2服务。我在这里使用谷歌API。我得到的主要问题是在返回无极其没有类似角1.x的。
getLoginStatus:功能(){
变种推迟= $ q.defer();
gapi.auth.authorize({CLIENT_ID:dataStore.getData('CLIENT_ID'),适用范围:dataStore.getData('SCOPES'),即时:真正},函数(响应){
VAR解析度= {};
RES =响应;
deferred.resolve(RES);
});
返回deferred.promise;
}
解决方案
2角使用RxJS 5 观测量
此:
下面是一个1:您的code 1译:
getLoginStatus:功能(){
返回新观测(函数(观察员){
gapi.auth.authorize({CLIENT_ID:dataStore.getData('CLIENT_ID'),适用范围:dataStore.getData('SCOPES'),即时:真正},函数(响应){
observer.next(响应);
observer.complete();
});
}
Wanted to convert following service to Angular 2 Service. I am using google api here. The main problem I am getting is to returning the Promise as its not similar as 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;
}
解决方案
Angular 2 uses RxJS 5 Observables
for this:
Here is a 1:1 translation of your code:
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();
});
}
这篇关于角的1.x $ Q角到2.0测试版的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文