不要怂,就是干,撸起袖子干!

Commit 7af32e54 by Sascha Depold

private method scoping

1 parent a47b53ff
Showing with 56 additions and 48 deletions
var Utils = require("./utils") var Utils = require("./utils")
var QueryChainer = module.exports = function(emitters) { module.exports = (function() {
var self = this var QueryChainer = function(emitters) {
var self = this
this.finishedEmits = 0
this.emitters = [] this.finishedEmits = 0
this.fails = [] this.emitters = []
this.finished = false this.fails = []
this.runned = false this.finished = false
this.eventEmitter = null this.runned = false
this.eventEmitter = null
emitters = emitters || []
emitters.forEach(function(emitter) { self.add(emitter) }) emitters = emitters || []
} emitters.forEach(function(emitter) { self.add(emitter) })
Utils.addEventEmitter(QueryChainer) }
Utils.addEventEmitter(QueryChainer)
QueryChainer.prototype.add = function(emitter) {
this.observeEmitter(emitter) QueryChainer.prototype.add = function(emitter) {
this.emitters.push(emitter) observeEmitter.call(this, emitter)
return this this.emitters.push(emitter)
} return this
QueryChainer.prototype.observeEmitter = function(emitter) { }
var self = this
emitter QueryChainer.prototype.run = function() {
.on('success', function(){ var self = this
self.finishedEmits++ this.eventEmitter = new Utils.CustomEventEmitter(function() {
self.finish() self.runned = true
}) finish.call(self)
.on('failure', function(err){
self.finishedEmits++
self.fails.push(err)
self.finish()
}) })
} return this.eventEmitter.run()
QueryChainer.prototype.finish = function(result) {
this.finished = (this.finishedEmits == this.emitters.length)
if(this.finished && this.runned) {
var status = this.fails.length == 0 ? 'success' : 'failure'
result = this.fails.length == 0 ? result : this.fails
this.eventEmitter.emit(status, result)
} }
}
QueryChainer.prototype.run = function() { // private
var self = this
this.eventEmitter = new Utils.CustomEventEmitter(function() { var observeEmitter = function(emitter) {
self.runned = true var self = this
self.finish() emitter
}) .on('success', function(){
return this.eventEmitter.run() self.finishedEmits++
} finish.call(self)
\ No newline at end of file })
.on('failure', function(err){
self.finishedEmits++
self.fails.push(err)
finish.call(self)
})
}
var finish = function(result) {
this.finished = (this.finishedEmits == this.emitters.length)
if(this.finished && this.runned) {
var status = this.fails.length == 0 ? 'success' : 'failure'
result = this.fails.length == 0 ? result : this.fails
this.eventEmitter.emit(status, result)
}
}
return QueryChainer
})()
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!