2
값의 상한값과 상한값을 사용하여 제한하는 값의 스트림이 있으며, 값이 변경되면 값만 내보내고 싶습니다. 이 문제는 다음 코드에서 두 번째로 distinctUntilChanged()
여전히 중복을 생산한다는 것입니다 :RxJs : distinctUntilChanged 여전히 중복 값을 내 보냅니다.
Observable // emits i.e. [2, 2, 2, 5, 5, 10, 20]
.distinctUntilChanged() // becomes [2, 5, 10, 20]
.map(target => {
const correctedTarget = Math.min(Math.max(target, MINIMUM), MAXIMUM); // Let's say min: 5, max: 10
if(correctedTarget != target) {
logger.warn(`Prediction wants to scale out-of-bounds to ${target}, limiting to ${correctedTarget}`);
}
return correctedTarget;
}) // becomes [5, 5, 10, 10]
.distinctUntilChanged() // should be [5, 10], but is [5, 5, 10, 10]
RxJs의 문서는 간단한 평등 비교에 필터 기본값, 그래서이 그냥 작동 ™ 것을 기대하는 것을 주장.
값이 순서대로 올 수 있다는 것을 완전히 확신합니까? 나는 당신의 코드를 가져 와서 rxjs 4와 비교해 보았고 모든 것이 완벽하게 작동했다. –
그래, 마지막 줄 전후에'.do (val => {logger.debug (value);})'를 추가하면 같은 값을 계속 출력하는지 확인할 수있다. – Sander
확인. 이 문제를 보여주는 샘플 코드를 게시 할 수 있습니까? 사용중인 rxjs 버전을 게시 할 수 있습니까? 내가 말했듯이, 빠른 샘플 변환은 제대로 작동했습니다. –