Назад к вопросам
Middle
82
questionbank

В чем сходство и отличия между Observable и Promise?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Сходства:

  • Представляют асинхронные операции.
  • Используют функции для обработки результата (resolved) и ошибки (rejected).

Отличия:

Особенность Promise Observable
Значение/события Возвращает одно значение или ошибку. Возвращает 0 или более значений со временем.
Отмена Нельзя отменить после запуска. Можно отменить подписку.
Множество подписчиков Единоразовое выполнение независимо от подписчиков. Новая отписка обычно приводит к новому выполнению (холодный Observable).
Ленивость Сразу начинает выполняться после создания. Начинает выполняться только после подписки.
Операторы Нет встроенных операторов для трансформации. Имеет богатый набор операторов (map, filter, merge и др.).
Примеры использования HTTP-запросы, отложенные действия. События UI, WebSocket-соединения, интервалы.

Пример Observable:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  setTimeout(() => {
    subscriber.next(3);
    subscriber.complete();
  }, 1000);
});

Пример Promise:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Данные получены');
  }, 1000);
});