async-observer Svelte Themes

Async Observer

šŸ”­ Make Promise state observable as a string for svelte

@jill64/async-observer

npm-version npm-license npm-download-month npm-min-size ci.yml

šŸ”­ Make Promise state observable as a string for svelte

Example

import { observable } from '@jill64/async-observer'

const { status, observed } = observable({
  // FULFILLED => IDLE at 100ms
  resolveToIdle: 100,
  // REJECTED => IDLE at 500ms
  rejectToIdle: 500
})

const run = observed(async () => {
  // e.g. Duration as 1000ms
  await yourAsyncFunction()
})

let str = ''

status.subscribe((status) => {
  str = status
})

// str => IDLE

run()

// str => PENDING

// ā†“ After the 1000ms

// str => FULFILLED

// ā†“ After the 100ms

// str => IDLE

Compatibility for svelte store

Since status is implemented according to svelte store, it can be used in svelte applications as follows

<script>
  import { observable } from '@jill64/async-observer'

  const { status, observed } = observable()

  $: set = observed(async () => {
    await yourAsyncFunction()
  })
</script>

<button on:click={set}>Button</button>

<div>{$status}</div>

License

MIT

Top categories

Loading Svelte Themes