角的1.x $ Q角到2.0测试版 [英] Angular 1.x $q to Angular 2.0 beta

查看:141
本文介绍了角的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆