在 JS 中模块化 API 时没有返回数据
No data returned when modularizing API in JS
我正在尝试通过创建一个 API 模块来模块化我的 JS 代码,我可以在其中使用 Liferay 的 AUI ajax 功能检索所有需要的数据。目前我有这个:
var API = (function() {
var getAsistencias = function(idEdicion, periodo) {
AUI().use('aui-io-request', function(A) {
A.io.request('myapiaddress', {
method : 'post',
dataType : 'json',
data : {
_mypackage_WAR_myportlet_periodo : periodo,
idEdicion : idEdicion
},
on : {
success : function() {
data = this.get('responseData');
return data;
}
}
});
});
};
return {
getAsistencias : getAsistencias,
}
})();
然而当我这样称呼它时:
var data = API.getAsistencias(id, dataInfo);
数据始终为空,即使在 onSuccess 方法中它实际上正确地检索了数据。我做错了什么?
还有我该如何管理错误?
这里的主要问题是你没有从你的函数中返回任何东西。应该是这样的
var API = (function() {
var getAsistencias = function(idEdicion, periodo,callback) {
AUI().use('aui-io-request', function(A) {
A.io.request('myapiaddress', {
method : 'post',
dataType : 'json',
data : {
_mypackage_WAR_myportlet_periodo : periodo,
idEdicion : idEdicion
},
on : {
success : function() {
data = this.get('responseData');
callback(data);
}
}
});
});
};
return {
getAsistencias:getAsistencias
};
})();
API.getAsistencias(id,periodo,function(data){
Console.log(data);
//Do something here
});
我正在尝试通过创建一个 API 模块来模块化我的 JS 代码,我可以在其中使用 Liferay 的 AUI ajax 功能检索所有需要的数据。目前我有这个:
var API = (function() {
var getAsistencias = function(idEdicion, periodo) {
AUI().use('aui-io-request', function(A) {
A.io.request('myapiaddress', {
method : 'post',
dataType : 'json',
data : {
_mypackage_WAR_myportlet_periodo : periodo,
idEdicion : idEdicion
},
on : {
success : function() {
data = this.get('responseData');
return data;
}
}
});
});
};
return {
getAsistencias : getAsistencias,
}
})();
然而当我这样称呼它时:
var data = API.getAsistencias(id, dataInfo);
数据始终为空,即使在 onSuccess 方法中它实际上正确地检索了数据。我做错了什么?
还有我该如何管理错误?
这里的主要问题是你没有从你的函数中返回任何东西。应该是这样的
var API = (function() {
var getAsistencias = function(idEdicion, periodo,callback) {
AUI().use('aui-io-request', function(A) {
A.io.request('myapiaddress', {
method : 'post',
dataType : 'json',
data : {
_mypackage_WAR_myportlet_periodo : periodo,
idEdicion : idEdicion
},
on : {
success : function() {
data = this.get('responseData');
callback(data);
}
}
});
});
};
return {
getAsistencias:getAsistencias
};
})();
API.getAsistencias(id,periodo,function(data){
Console.log(data);
//Do something here
});