Sencha touch 为什么Sencha Touch中没有同步回调?

Sencha touch 为什么Sencha Touch中没有同步回调?,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我希望在商店同步成功完成后能够向用户显示消息。然而,似乎没有任何方法可以使用回调或同步调用它。我有点惊讶,这不是现成的,因为这一定是一个常见问题 对此有什么解决办法吗?我们花了很长时间才找到一个合适的解决方案。最后,我们将监听器添加到商店的write事件中,它似乎工作正常。由于经常需要,它已添加到商店原型中 Ext.data.Store.prototype.syncWithListener=函数(onWriteComplete,syncMethod){ this.on('write',onWri

我希望在商店同步成功完成后能够向用户显示消息。然而,似乎没有任何方法可以使用回调或同步调用它。我有点惊讶,这不是现成的,因为这一定是一个常见问题


对此有什么解决办法吗?

我们花了很长时间才找到一个合适的解决方案。最后,我们将监听器添加到商店的write事件中,它似乎工作正常。由于经常需要,它已添加到商店原型中

Ext.data.Store.prototype.syncWithListener=函数(onWriteComplete,syncMethod){
this.on('write',onWriteComplete,this,{single:true});
var syncResult=syncMethod?syncMethod.apply(this):this.sync();
如果(syncResult.added.length==0&&
syncResult.updated.length==0&&
syncResult.removed.length==0){
removeListener('write',onWriteComplete,this,{single:true});
在写入完成时(本);
}
返回同步结果;
};

如果没有其他内容,您可以覆盖
sync()
,也可能覆盖代理的
batch()
,以在其中获取同步事件。如果你看一下代码,就提供同步事件而言,很可能是“呃,这太复杂了,去它的吧”。因为同步必须等待所有批处理操作完成。如果同步是针对一条记录(例如,用户的联系方式),该怎么办?用户在没有真正恢复成功的情况下继续操作是否安全?对我来说,批处理操作不太可能在我的应用程序中使用。批处理内容存在,因为同步更新已删除、新建和更改。因此,它发出三个操作,代理将这些操作批处理在一起。如果您只关心一条记录,那么
Model.load()
可能会更好。好的,谢谢。这可能就是model.load具有回调函数的原因。如果您添加您的答案,我会将其标记为正确。成功回调的简单解决方案示例应该提到,这并不是Ext的
回调
,而是仅用于
成功