this.start = function(){
// останавливаем репликацию
return this.stopAndClearExistsReplication()
// удаляем локальную БД
.always(function(){ return this.deleteLocalDB() })
// создаём локальную БД
.always(function(){ return this.createLocalDB() })
// ставим БД на репликацию
.done(function(){ return this.addReplicationDocument() })
// ставим репликацию на отслеживание
.done(function(){ return this.replicationMonitoring() });
};
По примеру похоже что вы в каждом предыдущем методе bind`ите правильный this так что можно вынести в функции выше.
this.start = function(){
// останавливаем репликацию
return this.stopAndClearExistsReplication()
// удаляем локальную БД
.always(deleteLocalDB)
// создаём локальную БД
.always(createLocalDB)
// ставим БД на репликацию
.done(addReplicationDocument)
// ставим репликацию на отслеживание
.done();
};
function deleteLocalDB(){ return this.deleteLocalDB() }
function createLocalDB(){ return this.createLocalDB() }
function addReplicationDocument(){ return this.addReplicationDocument() }
function replicationMonitoring(){ return this.replicationMonitoring() }
Если доступны стрелочные функции и this один на все методы
this.start = function(){
// останавливаем репликацию
return this.stopAndClearExistsReplication()
// удаляем локальную БД
.always(() => this.deleteLocalDB())
// создаём локальную БД
.always(() => this.createLocalDB())
// ставим БД на репликацию
.done(() => this.addReplicationDocument())
// ставим репликацию на отслеживание
.done(() => this.replicationMonitoring());
};
Если есть промисы и имена методов не требуют капитанских комментариев
this.start = function(){
return Promise.resolve()
.then(() => this.stopAndClearExistsReplication())
.always(() => this.deleteLocalDB())
.always(() => this.createLocalDB())
.done(() => this.addReplicationDocument())
.done(() => this.replicationMonitoring());
};