Операторы from
и of
В RxJS существует два оператора - from
и of
, которые используются для создания наблюдаемых последовательностей. Они имеют некоторые отличия в том, как они работают. Давайте рассмотрим каждый из них и объясним их детали.
1. from:
Оператор from
используется для преобразования различных источников данных в наблюдаемую последовательность. Он может принимать массив, строку, обещание, итерируемый объект и другие типы данных и преобразовывать их в наблюдаемую последовательность.
Вот примеры кода, демонстрирующие использование from
:
import { from, of } from 'rxjs'
// Преобразование массива в наблюдаемую последовательность
const array = [1, 2, 3]
const arrayObservable = from(array)
arrayObservable.subscribe((value) => {
console.log(value)
})
// Преобразование строки в наблюдаемую последовательность
const string = 'Hello'
const stringObservable = from(string)
stringObservable.subscribe((value) => {
console.log(value)
})
// Преобразование обещания в наблюдаемую последовательность
const promise = new Promise((resolve) => {
setTimeout(() => {
resolve('Resolved!')
}, 2000)
})
const promiseObservable = from(promise)
promiseObservable.subscribe((value) => {
console.log(value)
})
В первом примере мы преобразуем массив [1, 2, 3]
в наблюдаемую последовательность с помощью from
. Затем мы подписываемся на эту последовательность и выводим значения в консоль.
Аналогично, во втором примере мы преобразуем строку 'Hello'
в наблюдаемую последовательность и выводим ее символы в консоль.
В третьем примере мы преобразуем обещание с задержкой в наблюдаемую последовательность. Когда обещание разрешается, мы получаем значение 'Resolved!'
и выводим его в консоль.
2. of:
Оператор of
используется для создания наблюдаемой последовательности с заданными значениями. Он принимает значения как аргументы и создает наблюдаемую последовательность, излучая эти значения последовательно.
Вот пример кода, демонстрирующий использование of
:
import { of } from 'rxjs'
const observable = of(1, 2, 3)
observable.subscribe((value) => {
console.log(value)
})
В этом примере мы создаем наблюдаемую последовательность с помощью of
и передаем в него значения 1
, 2
и 3
. Затем мы подписываемся на эту последовательность и выводим значения в консоль.
Основное отличие между from
и of
заключается в том, что from
используется для преобразования различных источников данных в наблюдаемую последовательность, в то время как of
используется для создания наблюдаемой последовательности с заданными значениями.