在程序中,设置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 是不会报这样的错误的。
具体的原因自己还没有分析透,等自己找到原因了,在记下来。
今天就写到这,这几天连续加班 太累了 。
待续。。。
网友评论