Why cant i use .Subscribe() on a function with <suspends>?

Why do i get a red scribble under OnJakeClassChange in the first line? How do i fix this? I concluded that it is because of the . But this is necessary for the function.

JakeClassSelector.ClassSwitchedEvent.Subscribe(OnJakeClassChange)
    
        
    OnJakeClassChange(Agent:agent)<suspends>:void= #Because of the suspends i cant do "JakeClassSelector.ClassSwitchedEvent.Subscribe(OnJakeClassChange)"
        

                    if(CP:CustomPlayer = PlayersMap[Agent]):
                        CP.SetClass(JakeClass)
    
                        PlayerClass:int = CP.GetClass()
                        
                        loop:
                            Sleep(0.1)

                            if(CardDetector.IsHoldingItem[Agent]): # decide inside brackets []
                    
                            if(PlayerClass = JakeClass):
                                HidePlayer(Agent)

You are stuck with suspends due to the loop. How about move it to another function and run it on spawn.

Something like this:

OnJakeClassChange(Agent:agent):void=
    spawn. DoSomething(Agent)

DoSomething(Agent: agent)<suspends>:void=
    # rest of the code

thanks