Я использую angular 2, и я использую forkjoin для одного из сценариев, где мне приходится выполнять несколько вызовов отдыха параллельно. Ниже приведена моя функция.
private getBatchObservableData(data: Array<Widget>): Observable<any> {
let observableBatch = [];
data.forEach(widget => {
observableBatch.push(this._http.get(widget.apiPath).delay(500).map((data) => data.json()).share())
});
return Observable.forkJoin(observableBatch);
}
Это работает отлично. Но когда какой-либо из оставшихся вызовов терпит неудачу, весь forkjoin терпит неудачу. Так есть ли какой-либо способ выдать значения этих оставшихся вызовов и просто регистрировать, которые не удалось. ?? Пожалуйста помоги.
catch(error => Observable.of(error))
, а затем проверяйте значения в массиве, выдаваемомforkJoin
, чтобы увидеть, являются ли они экземплярамиError
. - person cartant   schedule 26.10.2017Error
, в массиве для них и значенияError
для всех неудачных. Я напишу ответ, чтобы было понятнее. - person cartant   schedule 26.10.2017