Rxjs: разница между Observable.First и Single против фильтра

Я изучаю библиотеку RxJS и очень люблю использовать Observable вместо Promise. Тем не менее, может ли кто-то предоставить подробную информацию о разнице между использованием

  • Observable.First
  • Observable.Single
  • Примените фильтр таким образом, чтобы он возвращал только один элемент

Что нужно для Single в этой библиотеке?

1 ответ

Решение

Если под фильтром вы подразумеваете что-то вроде:

let emitted = false;
obs = obs.filter(x => {
  if(emitted) {
    return false;
  } else {
    emitted = true;
    return true;
  }
});

Фильтр

Издаст, как только появится первый предмет. Будет игнорировать все последующие пункты. Завершится, когда завершится исходный объект.

in : -1-2-3--|---
out: -1------|---

Первый

Издаст, как только появится первый предмет. Завершу сразу после этого.

in : -1-2-3--|---
out: -1|----------

не замужем

Сбой, если наблюдаемый источник испускает несколько событий.

in : -1-2-3--|---
out: -1-X---------

Будет испускаться, когда источник наблюдаемой завершится (и single может быть уверен, что больше ничего не может быть испущено). Завершу сразу после этого.

in : -1------|---
out: --------1|--
Другие вопросы по тегам