self 和 global

作者: 抓不住的风 | 来源:发表于2014-10-28 23:03 被阅读99次

    在程序中,设置global.app = pomelo.app,将pomelo创建的的 Application复制给全局变量global,这样在程序中,随处都可以用 global.app 来获取Application 对象。

    自己在程序中遇到的问题是,在一个独立的模块的函数中,例如

    Lobby.prototype.entry = function( charId, next ){

          var self = this;

           async.waterfall([

                  function(cb){

                       self.app.redis.get('character_'+charId,cb);

                  }

            ],function( err , info ){

            });    

    }

    有时候会出现错误提示 cannot call redis of undefined.

    这就意味着self.app 没有获取到。按照正常的程序来说,此时的self.app 和global.app是相同的,没有任何区别。

    分析一下可能的原因是,这里的self 已经被 ‘污染’ 了。 可能是在调用这个entry方法的时候就已经被污染了。如果一直用global.app.redis 是不会报这样的错误的。

    具体的原因自己还没有分析透,等自己找到原因了,在记下来。

    今天就写到这,这几天连续加班 太累了 。

    待续。。。

    相关文章

      网友评论

        本文标题:self 和 global

        本文链接:https://www.haomeiwen.com/subject/szevtttx.html