Перейти к содержанию

from

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
function from<T>(
    producer:
        | ((setter: (v: T) => T) => () => void)
        | {
              subscribe: (
                  fn: (v: T) => void
              ) =>
                  | (() => void)
                  | { unsubscribe: () => void };
          }
): () => T | undefined;

Помощник, облегчающий взаимодействие с внешними производителями, такими как наблюдаемые значения RxJS или Svelte Stores. По сути, он превращает любой подписываемый объект (объект с методом subscribe) в Signal и управляет подпиской и отменой.

1
const signal = from(obsv$);

Также может быть использована пользовательская функция-производитель, которой передается функция-сеттер, возвращающая функцию-отписку:

1
2
3
4
5
6
7
const clock = from((set) => {
    const interval = setInterval(() => {
        set((v) => v + 1);
    }, 1000);

    return () => clearInterval(interval);
});

Аргументы

Имя Тип Описание
producer ((setter: (v: T) => T) => () => void) | { subscribe: (fn: (v: T) => void) => (() => void) | { unsubscribe: () => void }; } Функция producer или подписываемый объект

Ссылки

Комментарии