Backbone 的成功回调在 jquery 的 ajaxSuccess 之前调用
Backbone's success callback called before jquery's ajaxSuccess
我想确保 jQuery 的 ajaxSuccess 回调在 Backbone 成功之前被调用,但根据我的经验,情况并非如此。我想要这个
someModel.fetch({ success: function() {
console.log('2');
} });
$(document).ajaxSuccess(function(event, xhr, ajaxOptions) {
console.log('1');
});
记录 1, 2
而不是 2, 1
。原因是我正在使用 ajaxSuccess
来预过滤 Backbone 的回调
中所需的响应和保存数据
您所显示的并不一定意味着 Backbone 调用早于 ajax 成功回调。可能是 ajax 成功先被调用。然后立即调用 backbone 回调。那么就看哪个快,快的先登录。
表示backbone成功完成后不调用回调。
在你的情况下,你想在传递到模型之前预处理 ajax 东西。这很常见。事实上,Backbone 确实对此有原生支持。检查 Backbone.parse 方法。它默认为空,但您当然可以修改它以更改响应。
在你的获取成功后,尝试将你想要执行的代码放在 0 的 setTimeout 中。
这应该在其他东西有运行后立即执行。
请注意,我更愿意按照 evilsanta 的建议使用解析。这更多是关于您可以做什么,而不是必须做什么。
我想确保 jQuery 的 ajaxSuccess 回调在 Backbone 成功之前被调用,但根据我的经验,情况并非如此。我想要这个
someModel.fetch({ success: function() {
console.log('2');
} });
$(document).ajaxSuccess(function(event, xhr, ajaxOptions) {
console.log('1');
});
记录 1, 2
而不是 2, 1
。原因是我正在使用 ajaxSuccess
来预过滤 Backbone 的回调
您所显示的并不一定意味着 Backbone 调用早于 ajax 成功回调。可能是 ajax 成功先被调用。然后立即调用 backbone 回调。那么就看哪个快,快的先登录。
表示backbone成功完成后不调用回调。
在你的情况下,你想在传递到模型之前预处理 ajax 东西。这很常见。事实上,Backbone 确实对此有原生支持。检查 Backbone.parse 方法。它默认为空,但您当然可以修改它以更改响应。
在你的获取成功后,尝试将你想要执行的代码放在 0 的 setTimeout 中。
这应该在其他东西有运行后立即执行。
请注意,我更愿意按照 evilsanta 的建议使用解析。这更多是关于您可以做什么,而不是必须做什么。