cyl-hooks-tools
首页
  • useApi
  • useCo
  • useCollector
  • useWebsocket
  • useIndexedDB
  • NinePatch
  • parseJsonGraceful
  • sleep
  • logger
  • makeFriendly
  • formatSeconds
  • Uint8ArrayToString
  • dataSourceSliceOfECharts
  • ninePath
更新日志
首页
  • useApi
  • useCo
  • useCollector
  • useWebsocket
  • useIndexedDB
  • NinePatch
  • parseJsonGraceful
  • sleep
  • logger
  • makeFriendly
  • formatSeconds
  • Uint8ArrayToString
  • dataSourceSliceOfECharts
  • ninePath
更新日志
  • useApi

    • useApi
    • useApiAnyLoading
    • useApiAnyError
    • useApiState
  • useCo

    • useCoCallback
    • useCoEffect
  • useCollector

    • useCollector
    • useApiCollectionFetcher
  • useWebsocket
  • useIndexedDB
  • hooks
  • useCo
cyl
2023-03-23

useCoEffect

与useEffect类似,可以接受一个Generator函数callback, callback函数中可以 yield Promise,与async函数中的await Promise功能相同 当deps发生变化或Component被卸载的时候, 这个Generator函数的执行会中断在当前的yield位置。 中断时既不执行下一个语句,也不抛出异常, 但finally块在中断后仍会被执行。 callback函数的finally块中可以使用isCancelled检查 当前执行过程是否被取消

    
    import {IHttpClient,IContext} from "cyl-hooks-tools"
    
    
    export interface Test {
        id:number
        name:string
        createTime:number
    }
    export function getTests(ctx:IContext<IHttpClient,object>,testId:number):Promise<Test[]>{
      return ctx.get("https://chuyanlon.github.io/cyl-hooks-tools-doc/api/tests.json",{testId})
    }
    
    
    
    import {useApi,IContext,IHttpClient} from "cyl-hooks-tools"
    
    import {useCoEffect} from "cyl-hooks-tools/useCo"
    
    import {getTests} from "./test.ts"
    
    export default function Component(){
        const api = useApi<IContext<IHttpClient,object>>()
        const [testId,setTestId] = useState(1)
        useCoEffect(function *(){
            yield getTests(api,testId)
            console.log("请求完毕")
        },[testId])
        return <div>
            useCoEffect
        </div>
    }
    
    
    // Make sure to add code blocks to your code group
    上次更新: 2023/05/08, 19:10:56
    useCoCallback
    useCollector

    ← useCoCallback useCollector→

    Theme by Vdoing | Copyright © 2023-2025 cyl-hooks-tools
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式