Async/Await with For Loop

by Theara Yuom

Babel + JSX

const waitFor = (ms) => new Promise(r => setTimeout(r, ms))

// ------------------

let data = [
    { id: 1 },
    { id: 2 },
    { id: 3 }
]

// ForEach
async function forEachFun(array) {
    array.forEach(async (num) => {
        await waitFor(100)
        num.name = `A`
        console.log(num)
    })

    console.log('Done!', array)
}


// For...Of
async function forOfFun(array) {
    for (const num of array) {
        await waitFor(100)
        num.name = 'A'
        console.log(num)
    }

    console.log('Done!', array)
}

// Promise.all
async function proAllFun(array) {
    const promises = array.map(async (num) => {
        await waitFor(100)
        num.name = `A`
        console.log(num)
    })
    await Promise.all(promises)

    console.log('Done!', array)
}


forOfFun(data)