2016-10-04 6 views
2

Typescript/Angular2에 다음 함수를 작성하는 더 좋은 방법이 있는지 궁금합니다. 내가 관찰 가능한 서버 데이터를 캐싱하고 캐시 된 값을 반환하는 경우가 많습니다. 내 방식 (아래)은 조금 과장된 것 같습니다.Observable Shorthand

getUser(){ 
    return Observable.create(s => { 
     if(!this.user) 
     this.connection.identity((err, res) => { 
      this.user = res; 
      s.next(res); 
      s.complete(); 
     }) 
     else{ 
     s.next(this.user); 
     s.complete(); 
     } 
    }); 
    } 
+0

이 구현이 조금 더 있어야하지 않나요를? 오류를 처리하는 것으로 나타나지 않습니다. – cartant

답변

0

이 조금 짧은하고 오류를 처리합니다

import "rxjs/add/observable/of"; 
import "rxjs/add/observable/bindNodeCallback"; 
import { Observable } from "rxjs/Observable"; 
... 
getUser() { 
    return this.user ? 
    Observable.of(this.user) : 
    Observable.bindNodeCallback(
     this.connection.identity.bind(this.connection), 
     res => this.user = res 
    )(); 
} 
+0

일단 Observable을 가져 오기 {Observable}에서 'rxjs/Observable'에서 가져 오기 {Observable} 대신 'rxjs/Observable'에서 가져 오기 {Observable} – Christopher

+0

원하는 제작자를 가져 오면 최소한의 Observable 가져 오기를 사용할 수 있습니다 용도. 필요한 수입으로 답변을 업데이트했습니다. – cartant