在程序中,設(shè)置global.app = pomelo.app,將pomelo創(chuàng)建的的 Application復(fù)制給全局變量global,這樣在程序中,隨處都可以用 global.app 來獲取Application 對象。
自己在程序中遇到的問題是,在一個獨立的模塊的函數(shù)中,例如
Lobby.prototype.entry = function( charId, next ){
? ? ? var self = this;
? ? ? ?async.waterfall([
? ? ? ? ? ? ? function(cb){
? ? ? ? ? ? ? ? ? ?self.app.redis.get('character_'+charId,cb);
? ? ? ? ? ? ? }
? ? ? ? ],function( err , info ){
? ? ? ? });? ??
}
有時候會出現(xiàn)錯誤提示 cannot call redis of undefined.
這就意味著self.app 沒有獲取到。按照正常的程序來說,此時的self.app 和global.app是相同的,沒有任何區(qū)別。
分析一下可能的原因是,這里的self 已經(jīng)被 ‘污染’ 了。 可能是在調(diào)用這個entry方法的時候就已經(jīng)被污染了。如果一直用global.app.redis 是不會報這樣的錯誤的。
具體的原因自己還沒有分析透,等自己找到原因了,在記下來。

今天就寫到這,這幾天連續(xù)加班 太累了 。
待續(xù)。。。