In p-map I can see how a concurrency option makes sense: you are passing a mapper function so your promises only get invoked when p-map chooses and at the given concurrency.
With p-settle however there is no mapper function therefore the promises are invoked on creation, so why does it take a concurrency parameter? I can't see how this is not just all promises getting invoked at once and then p-settle effectively looping through the outcomes.
// From the docs, but with added files and a concurrency option:
const files = [
'a.txt',
'b.txt', // Doesn't exist
'd.txt',
'e.txt',
'f.txt',
'g.txt',
].map(fileName => fs.readFile(fileName, 'utf8'));
// ...I believe all readFiles have now been invoked and are
// in progress?
// The outcome will (eventually) be correct but the
// concurrency param is meaningless because all promises
// are running at once
console.log(await pSettle(files, { concurrency: 2 }));