Instead of chaining your async code with .then().then().then()
, you can use async/await.
Consider this example. First, request fooData
, then request barData
and exit the function (also resolving the promise).
{
type: 'TYPE',
async payload () {
const fooData = await getFooData();
const barData = await getBarData(fooData);
return barData;
}
}
Async/await can be combined with data for optimistic updates:
{
type: 'OPTIMISTIC_TYPE',
payload: {
data: {
...
},
async promise () {
...
}
}
}
Please note there is no need to return await
in an async function. See this ESLint rule for more details.