Skip to content

Instantly share code, notes, and snippets.

View amirrezaDev1378's full-sized avatar
🏠
Working from home

Amirreza hossein panah amirrezaDev1378

🏠
Working from home
  • Finland
  • 10:11 (UTC -12:00)
View GitHub Profile
function useAsync(asyncFn, onSuccess) {
useEffect(() => {
let isActive = true;
asyncFn().then(data => {
if (isActive) onSuccess(data);
});
return () => { isActive = false };
}, [asyncFn, onSuccess]);
useEffect(() => {
let isUnmounted = false;
someAsyncOperation().then(data => {
if (!isUnmounted )
{
setState(data)
}
})
return () => { isUnmounted = true};
}, []);
export default function useMultiRefs(initialValue) {
let currentRefs = [];
let refs = new Set(currentRefs);
function getRefs() {
if (initialValue && refs.size === 0) {
return initialValue;
}
if (typeof document === "undefined") {