Skip to content

🔄 常用异步信号

hookPromiseSignal - 异步数据处理

当依赖变化时自动重新请求:

typescript
function DataComponent() {
  const paramA = createSignal('param1')
  const paramB = createSignal('param2')

  // 当 paramA 或 paramB 变化时,自动重新请求
  const { get, loading, reduceSet } = hookPromiseSignal(() => {
    const a = paramA.get()
    const b = paramB.get()
    return () => fetchRemote(a, b)
  })

  fdom.div({
    children() {
      // 显示加载状态
      renderIf(
        () => loading.get(),
        () => fdom.div({ children: '加载中...' })
      )

      // 处理异步结果
      renderOneKey(get, 'type', (key, getValue) => {
        if (key === 'success') {
          const data = getValue().value
          fdom.div({ children: `数据: ${JSON.stringify(data)}` })
        } else if (key === 'error') {
          fdom.div({ children: '加载失败' })
        }
      })
    },
  })
}

基于 MVE 框架构建