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.