async function subFunction(index) { console.log(`UUT: Starting subfunction ${index} at ${new Date().toISOString()}`); // Simulate an asynchronous operation await new Promise((resolve) => setTimeout(resolve, 1000)); console.log(`UUT: Completed subfunction ${index} at ${new Date().toISOString()}`); } async function mainFunction() { for (let i = 1; i <= 5; i++) { // await subFunction(i); // this won't work await UUT.subFunction(i); } console.log(`UUT: Waiting a couple of seconds after subfunctions at ${new Date().toISOString()}`); await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait for 2 seconds console.log(`UUT: mainFunction completed at ${new Date().toISOString()}`); } export const UUT = { mainFunction, subFunction };