Проверяет знание оператора of в RxJS и его отличий от других способов создания потоков.
Оператор of — это функция создания Observable в библиотеке RxJS. Она принимает произвольное количество аргументов и создаёт поток, который синхронно emits каждое значение по порядку, а затем завершается. Это один из самых простых способов создать Observable, когда у вас уже есть данные, которые нужно передать подписчику.
Когда вы вызываете of(1, 2, 3), RxJS создаёт поток, который при подписке выдаёт 1, затем 2, затем 3 и вызывает complete. Важно понимать, что of не разворачивает массивы или другие итерируемые объекты — если передать массив, он будет передан как одно значение. Для разворачивания массивов используется оператор from.
import { of } from 'rxjs';
of(10, 20, 30).subscribe({
next: value => console.log(value), // 10, 20, 30
complete: () => console.log('Done')
});
// Пример с массивом
of([1, 2, 3]).subscribe(value => console.log(value)); // [1, 2, 3] как одно значениеОператор of часто используется для создания потоков из констант, для тестирования, для эмуляции ответов сервера или для комбинирования с другими операторами, например, mergeMap или switchMap. Он также полезен, когда нужно вернуть Observable из функции, которая всегда возвращает одно и то же значение.
Ключевое отличие: of принимает значения как аргументы, а from принимает массив, Promise или итерируемый объект и разворачивает его. Например, from([1,2,3]) выдаст 1, 2, 3, а of([1,2,3]) выдаст только массив.
Оператор of — это простой и удобный способ создать Observable из фиксированных значений. Его стоит применять, когда нужно быстро создать поток данных без асинхронных операций, например, для тестов, начальных значений или комбинирования с другими операторами в цепочках RxJS.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию