> 웹 프론트엔드 > JS 튜토리얼 > 관찰 가능 vs 약속

관찰 가능 vs 약속

DDD
풀어 주다: 2024-11-27 21:22:11
원래의
411명이 탐색했습니다.

Observable v/s Promise

*Observable * 및 *Promise *는 둘 다 JavaScript에서 비동기 작업을 처리하는 데 사용되지만 몇 가지 중요한 차이점이 있습니다.

약속

  • 단일 값: Promise는 단일 비동기 이벤트를 처리하고 단일 값(또는 오류)을 반환합니다.
  • Eager: Promise는 생성 즉시 실행되기 시작합니다.
  • 취소 불가: Promise가 시작되면 취소할 수 없습니다.
  • 구문: 연결 작업에 .then(), .catch() 및 .finally()를 사용합니다.

예:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Promise resolved!');
  }, 1000);
});

promise.then((value) => {
  console.log(value);
});
로그인 후 복사

관찰 가능 요소

  • 다중 값: Observable은 시간이 지남에 따라 여러 값을 내보낼 수 있습니다.
  • 게으른: Observable은 구독될 때까지 값을 방출하지 않습니다.
  • 취소 가능: Observable 구독을 취소하여 값 방출을 중지할 수 있습니다.
  • 구문: .subscribe()를 사용하여 내보낸 값, 오류 및 완료를 처리합니다.

예:

import { Observable } from 'rxjs';

const observable = new Observable((subscriber) => {
  subscriber.next('First value');
  setTimeout(() => {
    subscriber.next('Second value');
    subscriber.complete();
  }, 1000);
});

const subscription = observable.subscribe({
  next(value) {
    console.log(value);
  },
  complete() {
    console.log('Observable complete');
  }
});

// To cancel the subscription
subscription.unsubscribe();
로그인 후 복사

각각의 사용 시기

  • 단일 비동기 작업을 처리해야 하는 경우 Promise를 사용하세요.
  • 시간이 지남에 따라 여러 비동기 이벤트나 값을 처리해야 할 때, 그리고 데이터 스트림(예: 취소, 변환)에 대한 더 많은 제어가 필요할 때 Observable을 사용하세요.

위 내용은 관찰 가능 vs 약속의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿