SOURCE

function delayOutput(list){
    list.sort((a,b)=>a.delay-b.delay);
    const tasks = list.map((item)=>{
        return new Promise((resolve)=>{
            setTimeout(()=>{
                console.log(item.val);
                resolve(item.val);
            },item.delay)
        })
    })
    return Promise.all(tasks)
}


const list = [
    { val:'a', delay:1000},
    { val:'b', delay:2000},
    { val:'c', delay:3000},
    { val:'d', delay:1000},
    { val:'e', delay:2000},
    { val:'f', delay:1000},
]

delayOutput(list).then(()=>{
    console.log('All tasks completed')
})
console 命令行工具 X clear

                    
>
console