$ q.allsettled эквивалентно в угловых 2, чтобы поймать весь успех и не удалось - PullRequest
0 голосов
/ 22 октября 2018

Я хочу вызвать api для каждого выбранного клиента.Я использую один сервисный слой.поэтому, когда я вызываю службу с выбранным кодом клиента, клиент будет удален.

В AngularJS я использовал $ .allSettled, который будет давать обратные вызовы для полностью заполненных и не полностью заполненных.Я могу вставить данные об успешном и неудачном удалении клиентов, а также отобразить в пользовательском интерфейсе информацию об успешном и неудачном списке.

 $q.allSettled(promises)
                .then(function(results) {
                    results.forEach(function(result) {
                        if (result.state === 'fulfilled') {
                            // success :)

                          
                        } else {
                            // failed :(

                           //result.reason.config.data contains api input data
                        }
                    });
                }).finally(function() {
                    
                });

this.promises = [];
//FORMING LIST OF PROMISES
this.customerList.forEach(code => {
     this.promises.push(this.customersservice.delete(code));
});


Promise.all(this.promises).then(values => { 
  console.log(values);
}).catch(reason => { 
    //here i need to catch every time an api call fails for some reason , so that I can show in UI
  console.log(reason)
});


//SERVICE
 delete(code: string): Observable<any> {
    return this.http.delete(`${this.baseURL}/` + code)
}
Я реализовал, но мне нужно получить как список успеха, так и список неудач.Так что я могу показать в пользовательском интерфейсе.какие клиенты удалялись, а какие добились успеха.Я хочу сохранить один массив, содержащий объекты, имеющие {custCode: 100, status: fail / success}

Как этого добиться в angular2 +

...