【发布时间】:2016-08-08 09:56:48
【问题描述】:
简单的情况。我有带有文本框的表单,绑定到 observables。 Observables 订阅了一些逻辑(服务器验证等,只是一些 ajax 调用)。
表单上还有一个带有一些“保存数据”逻辑的按钮。只有在所有回调完成后才能保存数据。
订阅会在值发生变化时触发,主要是在焦点丢失时,而不仅仅是在每次更改时。
现在您可以简单地在文本框中输入任何内容,然后立即单击保存按钮。发生什么了?点击事件被调用,数据被保存。但有时它会比订阅事件触发和服务器返回数据更快。
如何将点击与订阅的“完成”承诺“同步”?我需要防止在一切完成之前保存数据。但是订阅文本框值和按钮之间没有关系。一切都是异步的,所以我不能只在点击事件中调用“等待函数”之类的东西。其他问题应该是订阅稍后触发然后单击事件。
有什么解决办法吗?
【问题讨论】:
标签: ajax knockout.js