UNPKG

@orca-fe/hooks

Version:

React Hooks Collections

57 lines (56 loc) 1.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useNextTick; exports.useLayoutNextTick = useLayoutNextTick; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _useMemorizedFn = _interopRequireDefault(require("./useMemorizedFn")); function useNextTick() { // nextTick var _useState = (0, _react.useState)([]), _useState2 = (0, _slicedToArray2.default)(_useState, 1), functionList = _useState2[0]; var nextTick = (0, _useMemorizedFn.default)(function (fn) { functionList.push(fn); }); (0, _react.useEffect)(function () { 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; } function useLayoutNextTick() { // nextTick var _useState3 = (0, _react.useState)([]), _useState4 = (0, _slicedToArray2.default)(_useState3, 1), functionList = _useState4[0]; var nextTick = (0, _useMemorizedFn.default)(function (fn) { functionList.push(fn); }); (0, _react.useLayoutEffect)(function () { 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; }