在程序中,設置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 是不會報這樣的錯誤的。
具體的原因自己還沒有分析透,等自己找到原因了,在記下來。
今天就寫到這,這幾天連續加班 太累了 。
待續。。。