'of'대 'from'연산자
사이의 유일한 차이 Observable.of
및 Observable.from
인수 형식은? 같은 Function.prototype.call
과 Function.prototype.apply
?
Observable.of(1,2,3).subscribe(() => {})
Observable.from([1,2,3]).subscribe(() => {})
좀 빠지는. 에 배열을 전달할 때 배열 Observable.from
과의 유일한 차이점 Observable.of
은 인수가 전달되는 방식입니다.
그러나 다음과 Observable.from
같은 주장 을 받아 들일 것입니다
구독 가능한 개체, 약속, 관찰 가능한 개체, 배열, 반복 가능한 개체 또는 변환 가능한 개체와 같은 개체
비슷한 동작은 없습니다 Observable.of
-항상 값만 허용하고 변환을 수행하지 않습니다.
배열과 같은 구조 (문자열 포함)를 전달할 때 of
와 from
전달할 때 의 차이점에 유의해야합니다 .
Observable.of([1, 2, 3]).subscribe(x => console.log(x));
전체 배열을 한 번에 인쇄합니다.
반면에
Observable.from([1, 2, 3]).subscribe(x => console.log(x));
요소 1을 1로 인쇄합니다.
문자열의 경우 동작은 동일하지만 문자 수준입니다.
또 다른 흥미로운 사실은 Observable.of ([])가 구독 할 때 빈 배열이된다는 것입니다. Observable.from ([])에 가입하면 어떤 가치도 얻지 못합니다.
스위치 맵으로 연속 저장을 할 때 중요합니다. 전의:
.do((data) => {
this.jobService.save$.next(this.job.id);
})
.switchMap(() => this.jobService.addSites(this.job.id, this.sites)
.flatMap((data) => {
if (data.length > 0) {
// get observables for saving
return Observable.forkJoin(jobSiteObservables);
} else {
**return Observable.of([]);**
}
})).do((result) => {
// ..
})
.switchMap(() => this.saveComments())
....
addSite 섹션에서 data.length = 0이면 위의 코드는 Observable.of ([])를 반환하고 주석을 저장합니다. 그러나이를 Observable.from ([])으로 바꾸면 후속 메소드가 호출되지 않습니다.
참고 URL : https://stackoverflow.com/questions/42704552/of-vs-from-operator
'IT박스' 카테고리의 다른 글
os.path.basename ()과 os.path.dirname ()의 차이점은 무엇입니까? (0) | 2020.07.15 |
---|---|
파이썬으로 명명 된 튜플 (0) | 2020.07.15 |
CSS만으로 이미지 회전식 슬라이드 쇼를 만들려면 어떻게해야합니까? (0) | 2020.07.15 |
malloc / free / new / delete에서 OS가 언제 그리고 왜 메모리를 0xCD, 0xDD 등으로 초기화합니까? (0) | 2020.07.15 |
자바에서 숫자를 단어로 변환하는 방법 (0) | 2020.07.15 |