Implement a function in JavaScript that takes:
The function should:
const tasks = [
() => Promise.resolve("Task 1 done"),
() => new Promise((_, reject) => setTimeout(() => reject("Task 2 failed"), 100)),
() => Promise.resolve("Task 3 done")
];
runParallel(tasks, (result) => {
console.log("Callback received:", result);
});
/*
Expected output (order may vary since they run in parallel):
Callback received: Task 1 done
Callback received: Task 2 failed
Callback received: Task 3 done
*/