I want to fire off 3 API requests with a delay of 50ms in between each. The code looks something like this

```
useEffect(() => {
        let timer1 = undefined
        let timer2  = undefined

        loadFirst()
        timer1 = setTimeout(() => {
            loadSecond()
            timer2 = setTimeout(() => {
                loadThird()
            }, 50)
        }, 50)

        return () => {
            clearTimeout(timer1)
            clearTimeout(timer2)
        }
}, [])

```

I *think* this works, but it's quite hard to read. Is there a cleaner way of doing this, such as using async/await?

My original idea was to wrap setTimeout in a promise, but I think you'd lose the timeout handle unless the Promise completed