Design and implement a function runWithPriority
that executes an array of tasks (functions returning promises) based on their assigned priority.
{ fn: () => Promise<any>, priority: number }
const tasks = [
{ fn: () => Promise.resolve('low'), priority: 1 },
{ fn: () => Promise.resolve('high'), priority: 3 },
{ fn: () => new Promise(res => setTimeout(() => res('medium'), 50)), priority: 2 }
];
runWithPriority(tasks).then(console.log);
// Output: ["high", "medium", "low"]
const failingTasks = [
{ fn: () => Promise.resolve('ok'), priority: 2 },
{ fn: () => Promise.reject('fail'), priority: 5 },
{ fn: () => Promise.resolve('skip'), priority: 1 }
];
runWithPriority(failingTasks).catch(console.error);
// Output: "fail"
fn
and priority
.[]
).