游戏编程研究院pomelo 游戏开发

self 和 global

2014-10-28  本文已影响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 是不会报这样的错误的。

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

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

待续。。。

上一篇下一篇

猜你喜欢

热点阅读