JS导入snake.js的update/draw函数无输出无报错问题排查求助
- 问题1:main函数未执行更新、绘制逻辑
你在game.js中定义的update()、draw()函数仅完成了声明,没有在main函数的渲染流程中被调用,所以snake.js内的打印逻辑始终不会触发。修改main函数补充调用即可:
function main(currentTime) { const secondsSinceLastRender = (currentTime - lastRenderTime) / 1000 window.requestAnimationFrame(main) if (secondsSinceLastRender < 1 / SNAKE_SPEED) return lastRenderTime = currentTime // 新增以下两行调用 update() draw() }
- 问题2:snake.js存在语法缺失
你贴出的snake.js代码中,draw()函数没有闭合的右大括号},会导致语法解析失败,补充完整即可:
export function draw() { console.log('draw snake') }
如果你实际运行的代码已经补全了该括号,可忽略此问题。
- 问题3:路径与运行环境不匹配
- 路径修正:如果game.js和snake.js同属
condition目录,将导入路径改为相对路径./snake.js,避免绝对路径的根目录匹配偏差。 - 运行环境要求:ES模块不支持直接通过file协议打开本地HTML文件,会触发跨域限制,需要启动本地静态服务(比如VS Code的Live Server插件、Python的http.server工具)访问项目。
内容的提问来源于stack exchange,提问作者Ashley
相关产品推荐
相关产品推荐

