每隔一秒打印1,2,3,4,5

107 阅读1分钟
let fns = (fn, timer) => {
    return () => {
        return new Promise(resolve => {
            setTimeout(() => {
                fn()
                resolve()
            }, timer)
        })
    }
}

let res = []
let fn = (i) => {
    return () => {
        console.log(i, Date.now())
    }
}

for (let i = 0; i < 5; i++) {
    res.push(fns(fn(i + 1), 2000))
}
res.reduce((pre, cur) => {
    return pre.then(cur)
}, Promise.resolve())
/**
output:
1 1679205298190
2 1679205300202
3 1679205302211
4 1679205304217
5 1679205306221
*/