2016-07-15 6 views
0

현재 RxJS 라이브러리에 대한 책읽기를하고 있으며,이 지식을 angular2 응용 프로그램에 통합하려는 목적으로 일부 건축가와 기고자가 제공하는 수업 중 일부를 수행하는 데 시간을 할애하고 있습니다. 나는 그것이 어렵다는 것을 알았 기 때문에 구문을 어떻게 바꿀 수 있는지 알 수 없기 때문에 RxJS를 사용할 수 있습니다. 왜냐하면 angular2가 아닌 예제에서 보았습니다. 예를 들어, 내가하려고하면 생성자에서 관찰자를 만들려면 다음RxJS Angular 2 구문

this.$mouseObserver = Rx.Observer.create(
     function (x) { 
    console.log('Next: %s', x); 
    }, 
    function (err) { 
    console.log('Error: %s', err); 
    }, 
    function() { 
    console.log('Completed'); 
    }); 

수신은 항상도를 가져온 후, 정의되지 않은납니다. Observer와 Observable import fine뿐만 아니라 그 방법도 있습니다. 나는 기본적인 것을 놓치고 있니? RxJS에 대한 모든 문서는 Rx.으로 거의 모든 것을 시작하지만 그 구문을 사용하는 하나의 Angular 2 튜토리얼을 보지 못했습니다.

답변

1

당신이 경우

import { Observer } from 'rxjs/Observer'; 

나 :

import { Observer } from 'rxjs/Rx'; 

당신은 Observer.create 사용합니다 (수신하지 않고있다.). Rx.Observer을 사용하려면 import * as Rx from 'rxjs/Rx';

일반적으로 개별 클래스/개체를 가져 오는 것이 더 바람직합니다. 그 이유는 더 많은 수의 양식 가져 오기가 필요한 이유입니다. 수신 라이브러리가 수입되지 않는 곳 Rx. 형태는 일반적으로 볼 수있는 <script src="..."> 태그에서 만 참조 (예를 들어 프로젝트는 node 환경에 내장되지 않습니다)

편집 :

관찰자 : C. 언스의 의견에 대한 답변에서 , RxJS 5 유형 정의에서 인터페이스입니다. 구현이 없으며 자바 스크립트로 컴파일되지 않습니다. 따라서 당신은 그것의 어떤 기능도 부를 수 없다. 귀하의 경우에는

export interface Observer<T> { 
    isUnsubscribed?: boolean; 
    next: (value: T) => void; 
    error: (err: any) => void; 
    complete:() => void; 
} 

Observer<any>$mouseObserver을 선언하고이 작동합니다 : 같은 인터페이스는 선언

this.$mouseObserver = { 
    next: function (x) { 
    console.log('Next: %s', x); 
    }, 
    error: function (err) { 
    console.log('Error: %s', err); 
    }, 
    complete: function() { 
    console.log('Completed'); 
    } 
}; 
+0

이 많은 이해된다. 그러나 Observer를 가져 와서'this. $ mouseObserver = Observer.create'를 사용하면 'Observer'라는 이름을 찾을 수없고 'rxjs/Rx'에서 Rx로 가져 오기 *를 가져오고' Rx.Observer.create'가 나에게 오류가 발생했습니다. 'typeof에 속성 관찰자가 없습니다. –

+0

Observables도 마찬가지입니까? 나는'Rx'를 사용할 때와 똑같은 문제가 있습니다. Observable을 배열로 만들고 싶었는데 어떻게 든 Rx에 붙어있었습니다. 나는 여기에'http : // stackoverflow.com/questions/43177833/import-rx-to-my-angular-2-application' 질문을 가지고있다. @Can Nguyen이 대답을 할 수 있겠는가? –

+0

Observable.from ([1,2,3])을 사용하면서 제안 된 가져 오기를 사용하십시오. '출발'에 오류가 발생합니다. 'import 'rxjs/add/observable/from''에서'from'을 가져 오는 것이 도움이되지 않습니다. –