If anyone has a moment, I'm completely stumped on this one. Check out this plunk with Chrome's console open:
When you click "Push!" for the first time, the watch function wont execute. But if you push it again, it will execute. It's like it ignores the first push. However, you can clearly see the dataPoints array changes after the first push due to the timeout function that is executing in the background. What's weirder, is if you comment out the jQuery fadeIn wrapper, the code works as expected.
What's going on here? Am I misunderstanding something?