Есть код, суть которого быстро запустить 10 функций одновременно, каждая из которых возвращает промисы и дальше уже спокойно ждать результатов.
async fn() {
let rets = [];
for (let i=0;i<10;i++) {
try {
let p = functionReturnsPromise();
rets.push(p);
} catch (err) {
console.log(err)
}
}
return rets;
}
// ---- Ждем результатов, один за другим ---
let results = fn();
for (let i=0;i<10;i++) {
let result = await results[i];
}
Теперь нужно сделать, чтобы также запускалось 10 функций, но чтобы у каждой функции можно было установить время через которое она начнет исполнятся (время задержки). Менять можно только код функции fn
Вроде понятно, что там должен быть таймер, а как это вместе сделать знаний не хватает. Пока пробую что-то вроде кода ниже, подскажите пожалуйста, как это все вместе скрестить. заранее спасибо.
async fn() {
let rets = [];
for (let i=0;i<10;i++) {
let p = new Promise((resolve, reject) => {
setTimeout(() => resolve(), i*1000)
}).then(()=>{
....????....
}).catch(error => {
console.log(err)
});
rets.push(p);
}
return rets;
}