Can you give an example of more fine grained control with then?
There's also other useful utilities such as Promise.all(), Promise.any() and Promise.race().
const task2then3 = async () => task3(await task2());
const [result1, result3] = await Promise.all([task1(), task2then3()]) async function getResult3(){
const res = await task2()
return task3(res))
}
const [result1, result3] = await Promise.all([task1(),
getResult3()])