Tu peux rater plus d'un tick, genre une dizaine à cause d'une latence réseau type connexion à la DB. Moi, la présence d'un objet global "app" me déplait, ça sépare la logique de ce qu'on veut faire en deux (à un endroit, on définit le app.* et à un autre, on s'en sert). Bon, c'est pas la mort, mais j'aime bien éviter ce genre de chose.
Je pousse un peu pour la beauté de la question: est-il possible que deux tick() soient lancés en même temps, que le gardien "if (...) return;" soit exécuté sur l'un puis sur l'autre et qu'enfin seulement, le tick_in_progress soit définit à true? Ce qui ferait que le contenu des 2 ticks s'exécuterait en parallèle.
Autrement demandé: si setInterval() est parallèle (ce qui me semble être le cas), un gardien "if" comme celui-là protège-t-il à 100% de l'exécution de deux tick() en parallèle?
Je crois que Niahoo vient de répondre ^^
Je pousse un peu pour la beauté de la question: est-il possible que deux tick() soient lancés en même temps, que le gardien "if (...) return;" soit exécuté sur l'un puis sur l'autre et qu'enfin seulement, le tick_in_progress soit définit à true? Ce qui ferait que le contenu des 2 ticks s'exécuterait en parallèle.
Autrement demandé: si setInterval() est parallèle (ce qui me semble être le cas), un gardien "if" comme celui-là protège-t-il à 100% de l'exécution de deux tick() en parallèle?
Je crois que Niahoo vient de répondre ^^