 <blockquote> <p>I wait for response from server for 1 second and check for it in console but [...]</p> </blockquote> <p>Changing the model manually (click the button using your mouse) instead of programmatically (<code>click()</code>) is the crucial part here.</p> <p>I assume <strong>you do not return the final model from your server</strong>, as Backbone update's your model with that data.</p> <p>See <a href="http://backbonejs.org/docs/backbone.html#section-53" rel="nofollow">section 53</a> and</p> <pre><code>if (options.wait) { if (attrs &amp;&amp; !this._validate(attrs, options)) return false; current = _.clone(this.attributes); } </code></pre> <p><a href="http://backbonejs.org/docs/backbone.html#section-55" rel="nofollow">section 55</a> </p> <pre><code>options.success = function(resp, status, xhr) { done = true; var serverAttrs = model.parse(resp); if (options.wait) serverAttrs = _.extend(attrs || {}, serverAttrs); if (!model.set(serverAttrs, options)) return false; if (success) success(model, resp, options); }; </code></pre> <p>of the <a href="http://backbonejs.org/docs/backbone.html" rel="nofollow">Backbone.js documentation</a>. Especially these lines:</p> <p><code>var serverAttrs = model.parse(resp);</code> (Parse model data from response)</p> <p><code>if (!model.set(serverAttrs, options)) return false;</code> (Update your model's attributes)</p> <p>When your first code (the one where you <code>click()</code> the buttons) runs, it increases your models attribute and loggs it before the server returns. Thats</p> <p><strong>Note:</strong> using the <code>wait</code> option or a <code>setTimeout()</code> in your 2nd press of button three in your first code would equal the behaviour.</p> <p>But what you want, is to return a <em>valid</em> model from your server (after persisting it).</p> <p><strong>Off topic tip:</strong> you should not bind your model and your view in the models <code>initialize</code>r or <code>constructor</code> as it would couple them too tight and they wouldn't be interchangable. (For this question, it is certainly acceptable. ;)</p>