두 가지 방법으로 약속을 만들고 반환하는 간단한 예제가 있습니다. 두 번째 메서드 buildRedCar()
은 첫 번째 메서드 buildCar()
을 호출하고 약속에 의해 반환 된 값을 수정하고 자신으로부터 또 다른 약속을 반환합니다. 그런 다음 코드는 buildRedCar()
을 호출하고 결과를 console.logs 만 출력합니다. 약속으로 변환 할 때 이것은 작동하지 않지만 직선 관측 자료를 사용할 때는 이이됩니다.Rxjs toPromise 동작이 관찰 가능하지 않음
하지 작업을 을 수행
import * as Rx from 'rx';
function buildCar(): Rx.IPromise<string> {
let car = 'Car';
return Rx.Observable.just<string>(car).toPromise();
}
function buildRedCar(): Rx.IPromise<string> {
let observable = Rx.Observable.create<string>((observer) => {
buildCar().then((car) => {
observer.onNext('Red ' + car);
});
})
return observable.toPromise();
}
buildRedCar().then((car) => {
console.log(car);
});
합니까 일 :
import * as Rx from 'rx';
function buildCar(): Rx.Observable<string> {
let car = 'Car';
return Rx.Observable.just<string>(car);
}
function buildRedCar(): Rx.Observable<string> {
let observable = Rx.Observable.create<string>((observer) => {
buildCar().subscribe((car) => {
observer.onNext('Red ' + car);
});
})
return observable;
}
buildRedCar().subscribe((car) => {
console.log(car);
});
어떤 생각이 왜 유일한 차이점은 반환하기 전에 약속에 관찰을 변환하는 다른 행동?