I've got following code:
function generateId() {
        var id = Math.floor(Math.random()*1000);
        var lastId = this.getLastAdvertId();
        var self = this;
        var promise = when.promise(function(resolve, reject) {
            if(id === lastId) self.generateAdvertId();
            if(lastId !== null){
                self.compareImages(id, lastId).then(function(result){
                    if(result) self.generateAdvertId();
                    else{
                        self.setLastAdvertId(id);
                        resolve(id);
                    }
                });
            }
            self.setLastAdvertId(id);
            resolve(id);
        });
        return promise;
}
This code 'works' the issue I've got is in that part:
if(lastId !== null){
    self.compareImages(id, lastId).then(function(result){
        if(result) self.generateAdvertId();
        else{
            self.setLastAdvertId(id);
            resolve(id);
        }
    });
}
when both images are the same result is true, but there isn't generated new Id but returned one that was generated. What may i doing wrong there?
 
    