Поместите несколько точек останова в часть pipe(map(scoringData))
и посмотрите, что вы получите.
Исключение выдается, потому что вы на самом деле предполагаете, что "scoringData", возвращающий объект, формируется так:
{"scores": [ << an array of something >> ]}
Но если scoringData имеет значение null, вы пытались использовать функцию .map
для получения неопределенного результата.
Быстрое исправление может быть:
.pipe(map((scoringData) => {
return (scoringData && scoringData.scores || []).map(score => {
status = score.IsActive ? 'checked' : 'unchecked';
return {
id: score._id,
Criteria: score.Criteria,
MaxPoints: score.MaxPoints,
IsActive: status,
DateCreated: score.DateCreated,
DateModified: score.DateModified
};
});
}))
Лучший способ состоит в том, чтобы отфильтровать результаты перед использованием карты в вашей трубе.
Это зависит от того, какую библиотеку RxJS вы используете, но обычно вы можете сделать что-то подобное:
.pipe(filter(scoringData => !!scoringData && !!scoringData.scores && scoringData.scores.length), map((scoringData)
И импорт оператора фильтра должен совпадать с оператором карты:
import { filter } from 'rxjs/operators';