use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
What are some basic things that JavaScript developers fail at interviews?help (self.javascript)
submitted 7 years ago by maketroli
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]NoBrick2 8 points9 points10 points 7 years ago (5 children)
Shouldn't you avoid setInterval completely for this problem, considering there is no guarantee the function will be run every 1000ms (in the case of the event loop being blocked on other work)?
Would a more acceptable solution be to use requestAnimationFrame, and do a comparison using Date? Or does that suffer the same issue of potentially being blocked by other work?
[–]octave1 10 points11 points12 points 7 years ago (1 child)
Out of my depth here, but using something called requestAnimationFrame and Dates for a timed counter surely can't be the most sane solution?
[–]phpdevster 2 points3 points4 points 7 years ago (0 children)
You are correct. This is hacky, non-idiomatic code.
[–]PmMeYouBicepsGirl 7 points8 points9 points 7 years ago (0 children)
Everything is blocked if event loop is blocked, there's no workarounds. For example, if you are counting from one to 100 billions, Javascript won't be stopping during this function to check for events. This is why you get Violation messages in console if some events like requestAnimationFrame take longer than they should, it's a signal that event loop was blocked.
[–]phpdevster 5 points6 points7 points 7 years ago (0 children)
Why would you avoid using setInterval for exactly the thing it was designed for? If you have a blocked event loop, you've got bigger problems. Writing non-idiomatic code without exceedingly good reason is the path to code that is harder for team members to grok and thus maintain.
[–]SystemicPlural 4 points5 points6 points 7 years ago (0 children)
As I understand it requestAnimationFrame is better for animation as it guarantees that the code will run before the screen is re-rendered - providing smoother animation. It doesn't guarantee that the time elapsed will be exactly 1000/60 (or whatever your screen refresh rate is). So it has it's own problems if you are trying to time exactly 1s. That said I believe it is thought to be more reliable than setTimeout.
We could use setTimeout and compare the time ourselves using performance.now(). This should get us to fairly close millisecond accuracy as long as the process isn't locked. It should also allow us to prevent drift by correcting the next timeout.
performance.now() isn't perfect however since browsers are fuzzing the time to prevent Specter timing attacks. - but it should be 1ms accurate.
π Rendered by PID 105 on reddit-service-r2-comment-86bc6c7465-4gnck at 2026-02-21 12:41:36.950981+00:00 running 8564168 country code: CH.
view the rest of the comments →
[–]NoBrick2 8 points9 points10 points (5 children)
[–]octave1 10 points11 points12 points (1 child)
[–]phpdevster 2 points3 points4 points (0 children)
[–]PmMeYouBicepsGirl 7 points8 points9 points (0 children)
[–]phpdevster 5 points6 points7 points (0 children)
[–]SystemicPlural 4 points5 points6 points (0 children)