我正在构建一个Backbone应用程序,我正在观察一些我不能放置的行为。请看下面的集合:在控制台中的非确定性骨干集合属性分配
window.Pictures = Backbone.Collection.extend({
model: Picture,
url: 'latest.json',
parse: function(response) {
this.foobar = 1;
},
fetchPage: function() {
this.foobar = 2;
return this;
}
});
在Chrome(或Firefox)控制台我发出以下命令:
> p = new Pictures(); p.fetch(); p.fetchPage();
> p.foobar
1
当我这样做:
> p = new Pictures(); p.fetch()
> p.fetchPage();
> p.foobar
2
我真不”不明白这一点。为什么第一次执行与第二次执行不同?
好的。这很清楚。所以当运行第一个变体1000次时,我应该至少看到正确的结果几次(我知道,这是不能保证的,但机会接近1)? – harm 2012-02-10 18:43:03
@harm:也许吧。在控制台中,定时问题非常难以处理和加倍。在返回JSON之前将您的服务器代码更改为休眠一秒或两秒应该会给您更多可预测的结果。 – 2012-02-10 18:47:45
然后我会试一试。谢谢您的帮助。 – harm 2012-02-13 09:01:56