not able to make multiple work group working and causing freeze

I am doing create multiple worker threads, in my case, i am trying to create 2:

This is my code to create work thread

function createWorker(data1, data2) {
  return new Promise((resolve) => {
    let worker = new Worker();
    worker.postMessage(data1, data2);
    worker.onmessage = (event) => {
      postMessageRes = event.data;
      if (postMessageRes == 200) {
        // loadCOPC();
      } else {
        workerCount += 1;
        let position = postMessageRes[0];
        let color = postMessageRes[1];
        for (let i = 0; i < position.length; i++) {
          positions.push(position[i]);
          colors.push(colors[i]);
        }
        resolve(true);
      }
    };
  });
}

and using it in my loop

 for (let m = 0; m < keyCountMap.length; ) {
    let remaining = totalNodes - doneCount;
    let numbWorker = Math.min(chunk, remaining);
    for (let i = 0; i < numbWorker; i++) {
      promises.push(createWorker([keyCountMap[m], keyCountMap[m + 1]]));
      m += 2;
    }
    Promise.all(promises).then((response) => {
      console.log("one chunk finishes");
    });
  }

The code works fine if i instead of all these use one static work thread and call postMessage in the loop for only one but not while i am trying to make chunk like here in the code.

When i run the code, my browser freeze