Nexus имел ввиду вот так:
function runTest(){
let promises = [];
const getPromise = i => new Promise(resolve => {
setTimeout(()=>{
console.log(i);
resolve();
}, 100);
});
for (let i = 0; i<10; i++){
promises.push(
getPromise(i)
);
}
Promise.all(promises).then(() => {
console.log("Done");
});
}
Только это всё равно создание функций в цикле.)
И в принципе это абсолютно нормально для таких случаев, любые альтернативы имеют мало смысла.
Tampermonkey тут идёт нафиг.