我对当前的代码有一些了解...
我创建了一个新的require js模块。
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:回调不是函数。 (在“回调(数据)”中,“回调”未定义)
我不确定我做错了什么。
答案 0 :(得分:0)
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);