我正在使用javascript函数和画布以及动画功能来旋转轮盘(轮盘式旋转轮) .

当旋转停止时,我试图看到我获得了什么奖励 . 那部分工作得很好 .

现在,我将这个奖项传递给另一个功能,从那里我想将奖品名称发送到后端 . 但是当我想要获得正确的奖励时,我会得到一个正确的细节,但是当我的功能继续进行时,它会经历无限循环然而 .

这是功能:

(function anim() {
    deg += speed;
    deg %= 360;

    // Increment speed
    if(!isStopped && speed<3){
        speed = speed+1 * 0.1;
    }
    // Decrement Speed
    if(isStopped){
        if(!lock){
            lock = true;
            slowDownRand = rand(0.994, 0.998);
        } 
        speed = speed>0.2 ? speed*=slowDownRand : 0;
    }
    // Stopped!
    if(lock && !speed){
        var ai = Math.floor(((360 - deg - 90) % 360) / sliceDeg); // deg 2 Array Index
        ai = (slices+ai)%slices; // Fix negative index
        // return alert("You got:\n"+ label[ai] ); // Get Array Item from end Degree
        submitEntry(label[ai]);    
    }

    drawImg();
    window.requestAnimationFrame( anim );
}());

我想我知道 window.requestAnimationFrame(anim) 一次又一次地调用函数的原因,只有 lock and !speed 的条件变为真,但函数一直在继续 .

旋转停止后,如何停止功能或中断功能或退出功能?