@orca-fe/hooks
Version:
React Hooks Collections
49 lines • 1.31 kB
JavaScript
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;
}