无法在回调函数中从同一模块调用模块中的方法

时间:2015-10-29 10:14:08

标签: javascript jquery cordova requirejs

我正在编写一个RequireJS模块,我用它来包装LG的webOS SCAP库所使用的ASYNC方法(这是一个基于Cordova的库,可以轻松地与webOS交互,在#34上;标牌"屏幕)。

SCAP方法依赖于成功和失败回调。

在我成功的一个回调中,我需要在同一个模块中调用另一个方法。

我尝试使用" var self = this"然后调用" self.methodName"但它总是未定义的。如果我调试," self"引用似乎已正确填充,显示所有"窗口"数据。但该方法尚未定义。

我已经能够在同一模块中调用其他模块中的方法,并且它可以工作。但这是我第一次尝试从嵌套函数中调用它。

代码:

define(["settings"], function(settings) {    
    return {
        updateProgress: function() {
            var self = this;

            // this is called when the statFile function succesfully finds the file and can read its properties
            var successCb = function(cbObject) {
                self.getDownloadSpeed(); // "self" is defined, getDownloadSpeed isn't.
            };

            var failureCb = function(cbObject) {
                // stuff here
            };

            var options = {
                // stuff here
            };

            settings.storage.statFile(successCb, failureCb, options); // SCAP method used to get file info (size, date modified etc)
        },

        getDownloadSpeed: function() {
            // stuff here
        }
    };
});

0 个答案:

没有答案