SOURCE

const list = [1,2,3,4,5,6,7,8,9,10]

const promisesList = list.map(item=>{
    return new Promise(suc=>{
        const time = Math.random()*(10000-1000)+1000 | 0
        console.log("准备执行item",item,"定时器毫秒秒数",time,"执行时间戳",+new Date(),)
        setTimeout(()=>{
            // console.log("输出item",item,+new Date())
            const log = {
                item,
                "执行时间戳":+new Date(),
                "定时器毫秒秒数":time
            }
            console.log("输出log",log)
            suc(log)
        },time)
    })
})

// console.log("promisesList",promisesList)
//方法1不行, all是一次执行所有
// Promise.all(promisesList).then(res=>{
//     console.log("promise数组list执行完了",res)
// }).catch(err=>{
//     console.log("执行错误")
// })


//方法2   for怎么不等上一个执行完 再执行一下个
// const promiseExecution = async () => {
//     for (let promise of promisesList) {        
//         const res =    await promise;   
//         console.log("for循环按顺序执行res",res)  

//     }
// };

// promiseExecution();

// 方法3 
const promiseExecution = async () => {
    for(let i = 0 ;i<list.length;i++){
        console.warn("在for循环里",i)
        let res =await promisesList[i]
        // let res =  await new Promise(suc=>{
        //     const time = Math.random()*(5000-1000)+1000 | 0
        //     console.log("准备执行i",i,"定时器毫秒秒数",time,"执行时间戳",+new Date(),)
        //     setTimeout(()=>{
        //         // console.log("输出item",item,+new Date())
        //         const log = {
        //             i,
        //             "执行时间戳":+new Date(),
        //             "定时器毫秒秒数":time
        //         }
        //         console.log("输出log",log)
        //         suc(log)
        //     },time)
        // })
        console.log("输出res",res,i)
    }
};

promiseExecution();
console 命令行工具 X clear

                    
>
console