我只想为对象的属性创建一个计时器,并在计时器关闭后执行它,而是立即调度。我错过了什么吗?我怎么能绕过这个?我认为这将是我可以轻松谷歌,但我出乎意料地没有找到任何东西
// example page object
pageObj: {
id: someId,
name: somePageName,
timer: someTimerObj,
//etc..
}
export const someFunc = () => ( dispatch ) => {
let timerObj = setTimeout( () => dispatch( _getNextAction( someInfo ), 5000 )); // this keeps getting executed right away when i just want it to execute when the timer goes off in 5 seconds
dispatch( setPageProperty( pageObj.id, 'timer', timerObj ));
}
const _getNextAction = ( someInfo ) => ( dispatch ) => {
if ( someInfo ) {
dispatch( pageIn );
}
else {
dispatch( pageOut );
}
}
答案 0 :(得分:1)
你错了一个右括号。
你写过
setTimeout( () => dispatch( _getNextAction( someInfo ), 5000 ));
什么时候应该
setTimeout(() => dispatch( _getNextAction( someInfo )), 5000);
我相信,因为你没有提供明确的超时值(因为5000
被传递到dispatch
而不是setTimeout
),所以它会把它带到表示超时0
并立即触发回调。