(这里是新手)
我重载了RESTAdapter
:
/*
The default RESTAdapter in the application.
An instance of this object will be created automatically.
*/
MyApp.Adapter = DS.RESTAdapter.extend({
ajax: function(url, type, hash) {
var ajax_reply = this._super(url, type, hash);
console.log('ajax_reply (promise) -> '); console.log(ajax_reply);
return ajax_reply;
}
});
现在我得到了我在控制台中可以看到的promise
:
我想要挂钩.then
方法,这样我就可以显示ajax调用返回的json
数据,但不会干扰RESTAdapter
的工作。例如,RESTAdapter.find
方法是:
find: function(store, type, id) {
var root = this.rootForType(type), adapter = this;
return this.ajax(this.buildURL(root, id), "GET").
then(function(json){
adapter.didFindRecord(store, type, json, id);
}).then(null, DS.rejectionHandler);
},
我想在控制台中看到通过.then
方法传递的所有json回复。我如何“勾结”承诺?
答案 0 :(得分:2)
这样的事情应该有效:
MyApp.Adapter = DS.RESTAdapter.extend({
ajax: function(url, type, hash) {
var ajaxPromise = this._super(url, type, hash);
ajaxPromise.then(function(json){
console.log(json);
});
return ajaxPromise;
}
});
答案 1 :(得分:1)
要记录所有.ajax()
个回复,请执行@LukeMelia建议的内容。
要将响应记录到特定的MyApp.Adapter.ajax()
来电,请尝试:
MyApp.Adapter.ajax(url, type, hash).then(function(json) {
console.log(json);
}, function() {
console.log('.ajax error');
});