Gorilla实验构建器使用JS钩子实现多反馈页面跳转问题求助
代码问题定位
你现有代码的核心问题是逻辑分支嵌套错误,导致除了「正确且快速」之外的分支永远无法触发:
- 外层
while的触发条件是reactionTime <= 2000,只有满足该条件才会进入外层代码块,嵌套在内层的while判断条件为reactionTime > 2000,和外层条件完全冲突,永远不会被执行 - 不需要使用
while循环:你读取的反应时间是固定数值,直接用if/else分支判断即可,循环逻辑完全多余 - 错误响应的判断仅放在了>2秒的分支内,当反应时间<=2秒但作答错误时,没有对应的处理逻辑,也会导致执行失败
修复后可正常运行的代码
var reactionTime = gorilla.readStopwatch(); // 先判断作答是否正确 if (response == "g") { // 正确的情况下再判断反应时间 if (reactionTime <= 2000) { // 正确且快速 return { new_screenName: 'Correct_fast'}; } else { // 正确但缓慢 return { new_screenName: 'Correct_slow'}; } } else if (response == "h") { // 作答错误 return { new_screenName: 'Incorrect'}; }
修复说明
- 去掉了所有冗余的循环逻辑,改用分层条件判断,所有分支都可正常触发
- 覆盖了全部三种业务场景,不存在遗漏的判断分支
- 逻辑分层更清晰,后续如果要调整阈值或者判断规则,直接修改对应分支的条件即可
内容的提问来源于stack exchange,提问作者Tessa
相关产品推荐
相关产品推荐

