UNPKG

@orca-fe/hooks

Version:

React Hooks Collections

49 lines 1.31 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import { useEffect, useLayoutEffect, useState } from 'react'; import useMemorizedFn from "./useMemorizedFn"; export default function useNextTick() { // nextTick var _useState = useState([]), _useState2 = _slicedToArray(_useState, 1), functionList = _useState2[0]; var nextTick = useMemorizedFn(fn => { functionList.push(fn); }); useEffect(() => { while (functionList.length > 0) { var fn = functionList.shift(); try { if (typeof fn === 'function') { fn(); } } catch (error) { console.error(error); console.error('Error while calling nextTick.'); } } }); return nextTick; } export function useLayoutNextTick() { // nextTick var _useState3 = useState([]), _useState4 = _slicedToArray(_useState3, 1), functionList = _useState4[0]; var nextTick = useMemorizedFn(fn => { functionList.push(fn); }); useLayoutEffect(() => { while (functionList.length > 0) { var fn = functionList.shift(); try { if (typeof fn === 'function') { fn(); } } catch (error) { console.error(error); console.error('Error while calling nextTick.'); } } }); return nextTick; }