Ember.js REST Ajax 成功和错误

2024-03-28

我想知道是什么success and error在 Ember.js RESTAdapter 中做ajax函数 https://github.com/emberjs/data/blob/761412849a56ad086c44659faafa547d8f6c03a8/packages/ember-data/lib/adapters/rest_adapter.js#L341-L347.

hash.success = function(json) {
  Ember.run(null, resolve, json);
};

hash.error = function(jqXHR, textStatus, errorThrown) {
  Ember.run(null, reject, jqXHR);
};

I know hash is the 通过AJAX发送数据 https://github.com/emberjs/data/blob/761412849a56ad086c44659faafa547d8f6c03a8/packages/ember-data/lib/adapters/rest_adapter.js#L349,但是起什么作用success and error玩?我认为它们会基于成功或错误的 AJAX 响应来运行,对吧?它们是在调用 AJAX 之前设置的,作为回调?它们是如何工作的?


但成功和错误分别扮演什么角色呢?我认为它们会基于成功或错误的 AJAX 响应来运行,对吧?

是的,由于 ember 在底层使用 jQuery,所以提到的函数只是简单的 jQuery 方法。

它们是在调用 AJAX 之前设置的,作为回调?它们是如何工作的?

至于函数本身,请参阅取自的此信息jQuery 官方文档 http://api.jquery.com/jQuery.ajax/:

  • error如果请求失败,则调用回调选项。它接收 jqXHR、指示错误类型的字符串以及异常对象(如果适用)。一些内置错误将提供一个字符串作为异常对象:“abort”、“timeout”、“No Transport”。

  • success如果请求成功,则调用回调选项。它接收返回的数据、包含成功代码的字符串和 jqXHR 对象。

我还应该提到的是success回调在最近的 jQuery 版本中被替换为done并被标记为已弃用,如下所示:

弃用通知:从 jQuery 1.8 开始,jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调已弃用。要为最终删除准备代码,请改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

但别担心,因为我猜在 jQuery 完全删除这个方法之前,ember 团队肯定已经赶上了新的回调版本。

最后,如果你想知道打电话给什么Ember.run你可以看看吗here http://emberjs.com/api/classes/Ember.run.html。但基本上它确保传递的目标和方法在 RunLoop 内部运行,还确保任何延迟的操作(例如绑定和视图更新),这在最后会被刷新。这个答案 https://stackoverflow.com/questions/13597869/what-is-ember-runloop-and-how-does-it-work on the Runloop信息也很丰富。

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ember.js REST Ajax 成功和错误 的相关文章

随机推荐