Este código JS cuando se ejecuta da una salida. ¿No debería esto conducir a infinitas llamadas recursivas y, por lo tanto, mostrar el límite de tiempo excedido? Por favor explique el flujo del programa.
function main(ctime){ window.requestAnimationFrame(main); if(start==undefined){ start= ctime; } if((ctime-start)/1000<0.5){ console.log(ctime); return; } } window.requestAnimationFrame(main);Aquí no hay recursión. window.requestAnimationFrame(main); simplemente pone el main en la cola de devolución de llamada sin ejecutarlo o esperarlo (como lo hace setTimeout() ) y regresa inmediatamente, luego se ejecuta la siguiente línea.