const urls = [
{
url: 'aaaaaaaaa',
time: 200
},
{
url: 'bbbbbbbb',
time: 200
},
{
url: 'cccccc',
time: 300
},
{
url: 'ddddddd',
time: 100
},
{
url: 'eeeeee',
time: 500
},
{
url: 'ffffffff',
time: 10
},
]
function sequentialFunc(urls) {
const arr = Array(urls.length).fill(null)
let index = 0
const consoleFunc = () => {
if (index >= urls.length) {
return
}
if (arr[index]) {
console.log(arr[index])
index++
consoleFunc()
}
}
for (let i = 0; i < urls.length; i++) {
setTimeout(() => {
arr[i] = urls[i]
consoleFunc()
}, urls[i].time)
}
}
sequentialFunc(urls)