Hao*_* Li 3 ajax ember.js ember-data
我想知道Ember.js RESTAdapter的ajax函数中有什么success和error做什么.
hash.success = function(json) {
Ember.run(null, resolve, json);
};
hash.error = function(jqXHR, textStatus, errorThrown) {
Ember.run(null, reject, jqXHR);
};
Run Code Online (Sandbox Code Playgroud)
我知道hash是通过AJAX发送的数据,但是扮演success和error扮演什么角色?我假设它们是基于成功或错误的AJAX响应运行的,对吧?它们是在调用AJAX之前设置的,作为回调?他们是如何工作的?
但成功和错误扮演什么角色?我假设它们是基于成功或错误的AJAX响应运行的,对吧?
是的,因为ember使用了jQuery,所提到的功能只是普通的jQuery方法.
它们是在调用AJAX之前设置的,作为回调?他们是如何工作的?
至于函数本身,请参阅jQuery官方文档中的这些信息:
如果请求失败,则调用错误回调选项.它接收jqXHR,一个指示错误类型的字符串,以及一个异常对象(如果适用).一些内置错误将提供一个字符串作为异常对象:"abort","timeout","No Transport".
如果请求成功,则调用success callback选项.它接收返回的数据,包含成功代码的字符串和jqXHR对象.
我还应该提一下,success回调是在最近被替换的jQuery版本中,done并且被标记为已弃用,如下所示:
弃用注意:自jQuery 1.8起,不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调.要准备最终删除的代码,请使用jqXHR.done(),jqXHR.fail()和jqXHR.always().
但不要担心,因为我猜想,直到jQuery彻底删除了这些方法,ember团队肯定已经赶上了新的回调版本.
最后,如果你想知道你的电话是什么,Ember.run你可以看看这里.但基本上它确保传递的目标和方法在RunLoop内运行,同时确保任何延迟的操作,如绑定和视图更新,最后刷新.这个所谓的答案上Runloop也非常丰富.
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
2367 次 |
| 最近记录: |