2
를 양보하지 않는 것 :Observable.prototype.concatAll 마음이 코드로 예상되는 결과를
const Rx = require('rxjs');
var i = 3;
const obs = Rx.Observable.interval(10)
.map(() => i++)
.map(function(val){
return Rx.Observable.create(obs => {
obs.next(val)
});
})
.take(10)
.concatAll();
obs.subscribe(function(v){
console.log(v);
});
나는 같은 것으로 기록 된 결과를 기대했을 것 :이다
[3,4,5,6,7,8,9,10,11,12]
을, 그러나 3
로 시작하는 10 개 값은, 우리가 얻을 모두는
3
입니다
누구나 그 이유를 알고 있습니까?
Rx.Observable.create()
가 대단히 감사의Rx.Observable.of()
을 사용할 수 있습니다 - 나는 테이크 (10)의 필요성을 제거하는 것이 100 %를 생각했을 것입니다 당신이 말하는 완전한() 호출이 필요합니다. complete()를 호출해야한다는 것은 말이되지 않습니다. take (10)가 처리 했어야합니다. 죄송하지만 RxJS는이 경우 IMO에서 올바른 일을하지 않습니다. –아주 간단한 예제로 표기 : –
const obs = Rx.Observable.interval (10) .toArray(); –