Skip to content

发现 getZookeeper 中存在的问题,请您核实下 #10

Description

@xuyan2680

Registry.prototype.getZookeeper = function () {
var defer = Q.defer();
if (this.zookeeper) {
defer.resolve(this.zookeeper);
}
//如果正在初始化中, 其他就不要初始化了, 加入队列等待
else if (this.isInitializing) {
this.initQueue.push(defer.promise);
}
return defer.promise;
};
其中this.initQueue.push(defer.promise); 这句代码经测试发现存在问题,你放到queue的是promise
然后在
this.zookeeper.once('connected', function () {
self.initQueue.forEach(function (p) { //从队列中获取, 租个通知
p.resolve(self.zookeeper);
});
self.isInitializing = false;
console.log('Registry : 已连接上zookeeper');
});
执行p.resolve(self.zookeeper); promise 此时resolve 是不能执行的,只有defer才能resolve吧?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions