Skip to content

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

@xuyan2680

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吧?

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