š Make Promise state observable as a string for svelte
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
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>