Reactive Utilities

from

编辑此页面
import { from } from "solid-js"
function from<T>(
producer:
| ((setter: (v: T) => T) => () => void)
| {
subscribe: (
fn: (v: T) => void
) => (() => void) | { unsubscribe: () => void }
}
): () => T | undefined

这是一个帮助函数,用于更轻松地与外部生产者(如 RxJS 可观察对象)或 Svelte Stores 进行互操作。 它基本上将任何可订阅的对象(具有 subscribe 方法的对象)转换为信号,并管理订阅和销毁。

const signal = from(obsv$)

它也可以接收一个自定义生产者函数,该函数接收一个 setter 函数作为参数,并返回一个取消订阅函数:

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 }; }生产者函数或可订阅的对象
报告此页面问题