UNPKG

@fbltd/async

Version:

Miscellaneous async utils

18 lines (17 loc) 570 B
import { useEffect, useState } from "react"; import { RaceStreamController } from "./race-stream.controller.js"; export function useRaceStream(deps) { const [obj] = useState(() => ({ controller: new RaceStreamController(deps) })); const [, setValue] = useState(false); obj.controller.rerenderTrigger = setValue; useEffect(() => { return () => { obj.controller.dispose(); obj.controller = undefined; }; }, []); return { value: obj.controller.value, dispose: obj.controller.dispose, }; }