function queue(cbs = []) {
let res = Promise.resolve()
cbs.forEach(n => {
res = res.then(n)
})
}
const api = (n) => new Promise((res, rej) => {
setTimeout(() => {
console.log(n);
res(n)
}, n);
})
queue([() => api(1000),n=>n+1000, n => api(n + 1000), n => api(n + 1000)])