我对我现在的代码有一点理解问题..。
我创建了一个新的require模块。
define(['jquery','apiomat'],function($,Apiomat) {
var getLocation = function(data, callback) {
Apiomat.Localization.getLocalizations("locale like 'de'", {
data: data,
onOk: function (data) {
callback(data);
}
});
};
return {
getData: function(data, callback) {
getLocation(data, callback);
}
}});
如果我试图通过以下方式访问这些函数:
var test = easy.getData();
app.logger("CALLBACK FROM COMMON: " + JSON.stringify(test));我总是收到这条错误信息。
TypeError:回调不是一个函数。(在“回调(数据)”中,“回调”未定义)
我不太确定我做错了什么。
发布于 2016-04-05 07:13:21
getData采用两个参数。第二个函数应该是一个函数,但是您根本没有传递任何参数,所以它得到了undefined值。
然后,它用相同的参数调用getLocation,而Apiomat.Localization.getLocalizations则执行它的操作。最后,getLocalizations (或它调用的另一个函数)调用getOK,后者试图调用callback。
undefined不是一个函数,因此您将得到错误消息。
此外,getData函数没有return语句,因此将返回undefined。这意味着没有必要将返回值分配给test。
您需要传递一个函数,它可以执行您想做的任何事情:
function myCallback(test) {
app.logger("CALLBACK FROM COMMON: " + JSON.stringify(test));
}…并将参数传递给getData。
easy.getData("some data", myCallback);https://stackoverflow.com/questions/36419394
复制相似问题