javascript - 函数 setTimeout 在 heroku 上不起作用
问题描述
我写了一个服务器,在本地一切都很好,但是在将它部署到 heroku 之后 setTimeout 立即执行,没有延迟。尝试部署setTimeout(openCard(buttonIndex), 1000)
, timeoutID 是全局变量。Aclually不做什么
const clickButton = (client, buttonIndex, time) => {
if(!(users[client.id])['isMaster']) {
if(room.teamTurn === (users[client.id])['team'] && !arrayToPlay[buttonIndex].isClicked && room.gameStarted && !globaleTime.MasterTurn) {
if(room[room.teamTurn].length > 1) {
addChosenWord(client,buttonIndex);
}
wordChosen = chosenWordCorrect() ? buttonIndex : null;
io.emit('wordChosen', wordChosen);
if(wordChosen !== null){
clearTimeout(timeoutID);
const date = new Date();
const localTimeOffset = date.getTimezoneOffset() * 60000;
const offset = date.getTime() - localTimeOffset - time;
timeoutID = setTimeout(()=>openCard(buttonIndex), 1000 + offset);
} else {
clearTimeout(timeoutID)
io.emit('room', room);
}
} else {
io.emit('buttonClicked', buttonIndex,client.id);
}
}
}
解决方案
我注意到您在代码中有setTimeout(() => openCard(buttonIndex), 1000 + offset);
但在您的询问setTimeout(openCard(buttonIndex), 1000)
中。
检查 是否在openCard
中的箭头函数内setTimeout
。
推荐阅读
- css - 顺风高度过渡与反应
- python - 嵌套默认字典的更符合人体工程学的替代方案
- java - 从列表中查找总和为给定总和的数字的算法
- django - 当我尝试访问我的应用程序的仪表板时出现 ValueError((无法查询“adivaumar@domain.com”:必须是“FriendList”实例。))
- java - 模拟方法时,Mockito 测试用例不起作用
- python - 在散点图中找到最近的路径
- python - 如何使用线性回归系数得出二手车的价值?
- mysql - 在错误的页面上抛出异常
- .net - dotnet publish 中的 out 是什么意思?
- graphql - 使用 Hot Chocolate 时忽略输入对象类型中的只读属性