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 }; } | 生产者函数或可订阅的对象 |