@orca-fe/hooks
Version:
React Hooks Collections
57 lines (56 loc) • 1.7 kB
JavaScript
;
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;
}