0.5.0 • Published 4 years ago

usepromises v0.5.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

usePromises

React and React Native hook to consume a Promise (similar to useEffect) with full TypeScript support

Installation

npm install --save usepromises

or

yarn add usepromises

Usage / Examples

usePromise

import { usePromise } from 'usepromises';

...

interface SampleResponse {
  slideshow: {
    title: string
  }
}

function Example() {
  const response = usePromise<SampleResponse>(async () => {
    const response = await fetch('https://httpbin.org/json');
    return response.json();
  }, []);

  return (
    <div>
      {response.isResolved && response.value.slideshow.title}

      {response.isRejected ? `Error: ${response.error}` : null}
    </div>
  );
};

useMountPromise

import { useMountPromise } from 'usepromises';

...

interface SampleResponse {
  slideshow: {
    title: string
  }
}

function Example() {
  const [response, setResponse] = useState<SampleResponse>();
  useMountPromise(async () => {
    const response = await fetch('https://httpbin.org/json');
    setResponse(response.json());
  });

  ...
};

useUnmountPromise

import { useUnmountPromise } from 'usepromises';

...

interface SampleResponse {
  slideshow: {
    title: string
  }
}

function Example() {
  useUnmountPromise(async () => {
    const response = await fetch('https://httpbin.org/json');
    console.warn('Server status code:', response.status);
  });

  ...
};