Why does Yield WaitForSeconds () only run once

Hi, I’m struggling to understand why yield WaitForSeconds (2) only waits for 2 seconds the first time then afterwards prints “Do 2 seconds later” each frame, what am I not understanding here?

Thanks for your time!

    function Do () {
        
        yield WaitForSeconds (2);
    
        print("Do 2 seconds later");
    }

Because you are not preventing new calls you probably have it like this:

function Update(){
    Do();
}

Even though you are delaying the printing, you get a new call of the Do function every frame.
This should fix your issue:

var call:boolean = true;
function Update(){
    if(call){
       Do();
       call = false;
    }
}

function Do () {
    yield WaitForSeconds (2);
    print("Do 2 seconds later");
    call = true;
}