var _manager = function (i) {
var deferred = $q.defer();
_doer(i)
.then(function (data) {
i++;
console.log('isStop = ' + isStop, 'i = ' + i);
if (data.state === 'ok' && !isStop && i < 7) {
//deferred.resolve({state: 'ok', i: i});
return _manager(i);
} else {
//deferred.resolve({state: 'end', i: data.i});
/* в следующий then передаем data через return */
return {state: 'end', i: data.i};
}
}, function (data) {
//deferred.reject({state: 'error', i: data.i});
return {state: 'error', i: data.i};
})
.then(function (data) {
if(data.state === 'ok') {
deferred.resolve({state: 'ok', i: data.i});
} else if (data.state === 'end') {
deferred.resolve({state: 'end', i: data.i});
} else {
deferred.resolve({state: 'error', i: data.i});
}
})
;
return deferred.promise;
};