Spawn delayed fetches inside loop

Hi community,

I wanted to request a little bit of help with my worker - I want to send a fetch() request to an API (triggered by a CRON trigger), and based on the results of the returned JSON, I want to spawn several new fetches in a loop, each of them delayed by a second.

My current approach was this:

async function sleep(ms) {
    await new Promise(r => setTimeout(() => r(), ms));

addEventListener('scheduled', event => {

addEventListener('fetch', event => {

async function handleSchedule(scheduledDate) {

    const response = await fetch(someUrl)
    const results = await gatherResponse(response)

    let delay = 0;
    results.forEach(element => {
        const response = makeAnotherRequest(delay, element.someId);
        delay += 1000;

async function makeAnotherRequest(delay, id) {
    await sleep(delay);

    const response = await fetch(someOtherUrl);
    /* id is passed in the header - not included in this example code */
    const data = await gatherResponse(response);

async function gatherResponse(response) {
    return await response.json();

It seems the child fetches() inside the loop are not executed - I think I missed something with async/await. Can anyone help me spot the error? I already searched the forum and looked at the examples, but had no luck so far.
Thanks in advance!

You never awaited makeAnotherRequest, so there is no delay. The promise of handleSchedule will resolve and the event will end.