JavaScript in Plain English

New JavaScript and Web Development content every day. Follow to join our 3.5M+ monthly readers.

Follow publication

Handling Asynchrony in Vue 3 / Composition API

Martin Malinda
JavaScript in Plain English
6 min readAug 8, 2020

--

Reactive state in vue-concurrency

Managing async state

Async function / Promises don’t track state

Custom hook: useAsync, usePromise and so on

const { state, ready } = useAsyncState(
axios
.get('https://jsonplaceholder.typicode.com/todos/1')
.then(t => t.data),
{
id: null,
},
)
const { refData, refError, refState, runAsync } = useAsyncState(() => axios('https://jsonplaceholder.typicode.com/todos/1'))

<Suspense />

setup() {
const { refData: response } = useAsyncState(() => ajax('/users');
const users = computed(() => response.value
&& response.value.data.users);
return { users };
}

const response = await ajax('/users');
const { users } = response.data;
return { users };

vue-promised — <Promised />

vue-concurrency — useTask

Conclusion

Up next

Subscribe on herohero for weekly coding examples, hacks and tips

--

--

Published in JavaScript in Plain English

New JavaScript and Web Development content every day. Follow to join our 3.5M+ monthly readers.

Written by Martin Malinda

Creative through code. Inspired by nature. Currently building https://powersave.pro

Responses (4)