Exercise 11: Promise Queue (sequential processing)
Problem Statement
Function `createQueue()` banao jo promises ko queue me add kare aur sequentially process kare.
Example: queue.add(() => fetchAPI1()); queue.add(() => fetchAPI2());
Sample Output:
const queue = createQueue(); queue.add(() => fetchAPI1()); queue.add(() => fetchAPI2()); // Processes sequentially
Solution
const createQueue = () => {
let processing = false;
const queue = [];
const process = async () => {
if (processing || queue.length === 0) return;
processing = true;
const fn = queue.shift();
await fn();
processing = false;
process();
};
return {add: (fn) => { queue.push(fn); process(); }};
};Explanation
Overall Goal:
- Promises ko sequentially process karna via queue.
Real world:
- Request queue: sequential API calls.
- Task queue: ordered processing.