understanding async/await in 3 code snippets

getData(a => {
  getMore(a, b => {
    getMore(b, c => {
      getMore(c, d => {
        getMore(d, e => {
          console.log(e)
        })
      })
    })
  })
})
getData()
    .then(a => getMore(a))
    .then(b => getMore(b))
    .then(c => getMore(c))
    .then(d => getMore(d))
    .then(e => console.log(e))
(async () => {
    const a = await getData()
    const b = await getMore(a)
    const c = await getMore(b)
    const d = await getMore(c)
    const e = await getMore(d)
    console.log(e)
})()