Aiuto Serial Monitor

Salve a tutti, stavo seguendo un tutorial per imparare ad usare il serial monitor.
Il programma permette di accendere il LED del colore che viene scritto nel serial monitor.
Il codice è il seguente:

const int greenPin= 2;
const int yellowPin= 3;
const int redPin= 4;
String comdata = "";

void setup()
{
  pinMode(greenPin,OUTPUT);
  pinMode(yellowPin, OUTPUT);
  pinMode(redPin, OUTPUT);
  Serial.begin(9600);
  Serial.print("Please input any color of LED:");
}

void loop()
{
  //read string from serial monitor
  if(Serial.available()>0)
  {  
    comdata = "";
    while (Serial.available() > 0)  
    {        
      comdata += char(Serial.read());
      delay(2);
    }
    Serial.println(comdata);
  }
    if(comdata == "red")
    {
      digitalWrite(redPin, HIGH);
      digitalWrite(greenPin, LOW);
      digitalWrite(yellowPin, LOW);
    }
...

Avrei un dubbio sul motivo del perchè viene messo il delay(2) nel ciclo while.
Qualcuno sa spiegarmi come mai viene messo?
Ho fatto delle prove cambiando il valore del delay, per esempio:

  • se lo tolgo completamente, una volta scritto il colore nella barra in alto del serial monitor e dato l’invio, le lettere vengono scritte una sotto l’altra.
  • se invece metto delay(1), le lettere vengono scritte a 2 a 2