LogoLogo
  • Home
  • Services
    • Fiber
    • Accessor
    • Schema
    • Form
    • Translator
  • Components
    • <Router/>
    • <Memo />
  • Observables
    • Async
    • Value
    • Store
    • List
    • Local Storage Value
    • Local Storage Store
    • Local Storage List
  • Hooks
    • useAsync
    • useAffect
    • useStream
    • useAction
    • useDebounce
    • useThrottle
    • usePrevious
    • useIdle
    • useValue
    • useList
    • useStore
    • useForm
    • useFormBinder
    • useTranslator
    • useQuery
  • Helpers
    • Tag
    • Input Helpers
    • Promise Helpers
    • Save Helpers
    • Pagination Helpers
    • Clipboard Helpers
    • Calendar Helpers
    • Local Storage Helpers
Powered by GitBook
On this page
  • createAsync()
  • Async.getResult()
  • Async.getError()
  • Async.getState()
  • Async.isRunning()
  • Async.isCancelled()
  • Async.isErrored()
  • Async.run()
  • Async.resolve()
  • Async.cancel()
  • Async.listen()

Was this helpful?

  1. Observables

Async

Abstraction for async operations that can be hooked into React.

Previous<Memo />NextValue

Last updated 3 years ago

Was this helpful?

Source code is hosted in

yarn add @corets/async
npm install --save @corets/async

Seamless React integrations are shipped inside separate packages:

createAsync()

Create an observable async operation:

import { createAsync } from "@corets/async"

const query = createAsync(async () => "some data")

Create an observable async operation without the factory function:

import { Async } from "@corets/async"

const query = new Async(async () => "some data")

Async.getResult()

Retrieve result from the last invocation:

query.getResult()

Async.getError()

Retrieve probable error from the last invocation:

query.getError()

Async.getState()

Retrieve all the details in a single call, contains values like isRunning, isCancelled, result, etc.:

query.getState()

Async.isRunning()

Check if the async operation is being executed right now:

query.isRunning()

Async.isCancelled()

Check if the latest async invocation has been cancelled:

query.isCancelled()

Async.isErrored()

Check if the latest async invocation errored:

query.isErrored()

Async.run()

Invoke async operation:

import { createAsync } from "@corets/async"

const query = createAsync(async (argument: number) => "some data")
const queryWithArguments = createAsync(async (argument: number) => `The value is ${argument}`)

const result = await query.run()
const anotherResult = await queryWithArguments.run(1337)

Async.resolve()

import { createAsync } from "@corets/async"

const query = createAsync(async (argument: number) => "some data")

const resultFromValue = await query.resolve("another value")
const resultFromPromise = await query.resolve(Promise.resolve("another value"))
const resultFromProducer = await query.resolve(async () => "another value")

Async.cancel()

Cancel current async invocation:

query.cancel()

Async.listen()

const unsubscribe = query.listen((state) => console.log("async state changed", state))

Manually resolve async result, makes it available on the instance using :

Subscribe to state changes, the listener receives the same object that you get from :

GitHub
useAsync
useStream
useAction
getResult()
getState()