Skip to content

优化 useAsyncPool 心智负担过重的情况 #9

@wongchisum

Description

@wongchisum

说明

现有的 useAsyncPool 在面对有依赖的并发请求场景,需要开发者写很多的条件判断代码,心智负担过重

场景

假设:初始化发起并发请求A,请求A获取的结果去请求B

伪代码:

const {loading,dataA,runTaskA} = useAsyncPool(list,fnA) // 并发请求A

const {pending,dataB,runTaskB} =  useAsyncPool(list,fnB) // 并发请求B

// 当请求完A,我们依赖A的某数据去请求B

useEffect(() => {
  if (!loading && data.length) {
    runTaskB()
  }
})

useEffect(() => {
  runTaskA()
},[])

 

上述场景有两个不足:

  1. useAsyncPool 没有提供自动加载的能力,需要useEffect在初始化进行手动请求(runTaskA)

  2. useAsyncPool 没有处理请求依赖的问题,需要判断前置请求是否加载完成,再手动加载下一个任务

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions