내용으로 건너뛰기
GaramX
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
home
»
angular
»
observable_rxjs
»
practicalobservableusage
추적:
angular:observable_rxjs:practicalobservableusage
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Practical observable usage ====== 다음은 관찰 성이 특히 유용한 도메인의 예입니다. ===== Type-ahead suggestions ===== 옵서버블은 사전 형 제안의 구현을 단순화 할 수 있습니다. 일반적으로 사전 판매는 일련의 별도 작업을 수행해야합니다. * 입력 데이터를 들어 봅니다. * 값을 다듬고 (공백을 제거하십시오) 최소 길이인지 확인하십시오. * Debounce (모든 키 스트로크에 대해 API 요청을 보내지 않고 대신 키 입력의 중단을 기다리십시오). * 값이 동일하게 유지되면 요청을 보내지 않습니다 (예를 들어 문자를 빠르게 치고 백스 페이스). * 업데이트 된 결과로 인해 결과가 무효화되는 경우 진행중인 AJAX 요청을 취소하십시오. 이것을 전체 자바 스크립트로 작성하는 것은 상당히 복잡 할 수 있습니다. observables를 사용하면 간단한 일련의 RxJS 연산자를 사용할 수 있습니다. <code javascript> import { fromEvent } from 'rxjs'; import { ajax } from 'rxjs/ajax'; import { map, filter, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators'; const searchBox = document.getElementById('search-box'); const typeahead = fromEvent(searchBox, 'input').pipe( map((e: KeyboardEvent) => e.target.value), filter(text => text.length > 2), debounceTime(10), distinctUntilChanged(), switchMap(() => ajax('/api/endpoint')) ); typeahead.subscribe(data => { // Handle the data from the API }); </code> ===== Exponential backoff ===== 기하 급수적 백 오프는 실패 후 API를 다시 시도하여 연속적인 실패가 발생할 때마다 다시 시도 간격을 늘리고 요청이 실패한 것으로 간주되는 최대 재시도 횟수로 만듭니다. 이것은 약속과 AJAX 호출을 추적하는 다른 방법으로 구현하기에는 상당히 복잡 할 수 있습니다. Observables를 사용하면 매우 쉽습니다. <code javascript> import { pipe, range, timer, zip } from 'rxjs'; import { ajax } from 'rxjs/ajax'; import { retryWhen, map, mergeMap } from 'rxjs/operators'; function backoff(maxTries, ms) { return pipe( retryWhen(attempts => zip(range(1, maxTries), attempts) .pipe( map(([i]) => i * i), mergeMap(i => timer(i * ms)) ) ) ); } ajax('/api/endpoint') .pipe(backoff(3, 250)) .subscribe(data => handleData(data)); function handleData(data) { // ... } </code>
angular/observable_rxjs/practicalobservableusage.txt
· 마지막으로 수정됨: 2025/04/15 10:05 저자
127.0.0.1
문서 도구
문서 보기
이전 판
역링크
맨 위로