self 和 global

在程序中,设置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 是不会报这样的错误的。

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


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

待续。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容