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 的建议使用解析。这更多是关于您可以做什么,而不是必须做什么。