Difference between blocks at receive text from bluetooth

After some tests i did it works like a charm!!! thank you very much!!!! But since i like to learn can you please explain me the blocks below?

  1. When does the process run? When it reaches the delimeter byte?
  2. I really cant understand the part of -1 it says..... If there is 1 or more bytes available then set the global variable to the received text... But where does the -1 assosiates?

Thank you again!!!