Javascript 绘制射弹时使用ctx.lineTo赢得';无法使用setTimeout

Javascript 绘制射弹时使用ctx.lineTo赢得';无法使用setTimeout,javascript,canvas,Javascript,Canvas,我的主要意图是在画布上通过ctx.lineTo绘制投射物来模拟火箭,唯一的问题是,每当我使用setInterval或setTimeout时,该行根本不会出现,console.log(“test”)会在超时1000后正确显示,但该行不起作用 但是,当我在没有超时的情况下打开它时,该行确实工作,只有初始的“ctx.lineTo(xx,yy)”绘制了一条线,但是“ctx.lineTo(xx+50,yy+50)”没有 将这两个函数放在一个函数中,可以立即绘制它们 我怎样才能修好它?不能延迟在画布上绘制线

我的主要意图是在画布上通过ctx.lineTo绘制投射物来模拟火箭,唯一的问题是,每当我使用setInterval或setTimeout时,该行根本不会出现,console.log(“test”)会在超时1000后正确显示,但该行不起作用

但是,当我在没有超时的情况下打开它时,该行确实工作,只有初始的“ctx.lineTo(xx,yy)”绘制了一条线,但是“ctx.lineTo(xx+50,yy+50)”没有

将这两个函数放在一个函数中,可以立即绘制它们


我怎样才能修好它?不能延迟在画布上绘制线条吗?

lineTo只声明一个路径,要实际渲染它,必须调用ctx.stroke()。另外,不要忘记在声明路径之前调用ctx.beginPath(),否则它只会添加到先前声明的路径,您也会重新绘制这些先前的路径。哦,这就是我缺少的,ctx.stroke。非常感谢。
function drawRocket(){
    ctx.lineTo(xx, yy);
    setTimeout(frame1, 1000);
}

function frame1(){
    ctx.lineTo(xx+50, yy+50);
    console.log("test");
}

drawRocket();