使用回调返回require.js中的成功数据

时间:2016-04-05 07:06:33

标签: javascript jquery backbone.js requirejs

我对当前的代码有一些了解...

我创建了一个新的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:回调不是函数。 (在“回调(数据)”中,“回调”未定义)

我不确定我做错了什么。

1 个答案:

答案 0 :(得分:0)

getData有两个参数。第二个应该是一个函数,但你根本没有传递任何参数,所以它得到值undefined

然后使用相同的参数调用getLocationApiomat.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);