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|--