Tengo una base de datos de rizzles y cada uno tiene una duración. Necesito configurar un temporizador para cada uno (en determinadas condiciones), pero no sabría cómo manejar eso.
Y, por supuesto, el temporizador, si se ejecuta, debe guardarse entre páginas, por lo que estaba pensando en hacerlo en el lado del servidor. Es una aplicación web con React y NodeJS. Mostraría algo de código, pero no sé qué escribir. Estaba pensando en un vector de idrizzle y duración en el lado del servidor, pero no sabría cómo implementarlo.
¿Alguna idea o sugerencia?
EDITAR:
Intento darte más detalles: - Si el acertijo está "abierto", el autor verá todas las respuestas actuales (actualizadas cada segundo) y una cuenta regresiva que muestra el tiempo restante.
Significa que cada acertijo tiene una duración, y si hay varios acertijos abiertos, debo tener varios "setInterval" o algo que simplemente disminuya la duración y se lo muestre al usuario.
- seleccionar un acertijo “abierto”, le da la oportunidad de responder (sin mostrar ninguna de las otras respuestas, por supuesto). Cualquier usuario puede proporcionar como máximo una respuesta a cada acertijo y no se puede modificar después del envío. En la respuesta a un acertijo abierto, una cuenta regresiva muestra el tiempo restante. Si el tiempo restante es inferior al 50%, se muestra la primera pista. Si el tiempo restante es inferior al 25%, también se muestra la segunda pista.
Esto es más o menos lo mismo. Necesito tomar la cuenta regresiva, probablemente desde el frente.
En mi base de datos solo tengo la duración completa
EDITAR 2:
Una idea que se me ocurrió es crear una copia de mi estado y usarla para disminuir la duración, el problema es que puedo ver la disminución solo cuando cierro y abro de nuevo:
//------TIMER------------ function decreaseDuration(){ copy.map(e=>{ if(e.state===1){ if(e.duration>0){ e.duration=e.duration-1; } } }) } setInterval(decreaseDuration(),1000);¿Hay alguna manera de que pueda actualizar en vivo la cuenta regresiva?