Observers and Asynchrony in Ember.js <p>I follewed the guide on <a href="http://www.emberjs.com" rel="nofollow">the ember.js homepage</a> and found that code at <a href="http://emberjs.com/guides/object-model/observers/#toc_observers-and-asynchrony" rel="nofollow">this section</a>:</p> <pre><code>Person.reopen({ lastNameChanged: function() { // The observer depends on lastName and so does fullName. Because observers // are synchronous, when this function is called the value of fullName is // not updated yet so this will log the old value of fullName console.log(this.get('fullName')); }.observes('lastName') }); </code></pre> <p>According to the comments the function <code>lastNameChanged</code> should output an old version of the fullName property. But when I ran my slightly modifed code I got the new version of the property:</p> <pre><code>Person = Ember.Object.extend({ firstName: null, lastName: null, fullName: function() { return this.get('firstName') + ' ' + this.get('lastName'); }.property('firstName', 'lastName'), }); Person.reopen({ lastNameChanged: function() { console.log('lastName changed. Name is now: ' + this.get('fullName')); }.observes('lastName') }) max = Person.create({ firstName: 'Max', lastName: 'Lehmann', }); max.set('lastName', 'Mustermann'); console.log(max.get('fullName')); </code></pre> <p>I know that the guide is based on an older version of Emberjs (I suppose 1.3). I tested the code with the current version of Ember (1.6.1). Does the new version explain the change in that behaviour?</p>