Я постепенно изучаю наблюдаемые и силу, которой они обладают. Однако по мере того, как я узнаю о них больше, я задаюсь вопросом, являются ли мои методы массива старой школы теперь избыточными.
HTTPClient возвращает наблюдаемый объект, на который я подписываюсь. Однако данные, возвращаемые сервером, содержат список элементов (в данном случае единиц оборудования). Мой инстинкт был бы для нас старой школой for
l oop, чтобы развернуть данные и обработать их в приложении. Однако у меня есть ощущение, что это может быть неправильным подходом в мире наблюдаемых.
Должен ли я по-прежнему использовать for
циклы или переключаться на операторы Rx JS?
Вот служба:
# equipment.service.ts
export class EquipmentService {
public equipmentList:Array = [];
constructor(private http: HttpClient) {
}
public loadEquipment(){
this.http.get('https://ourapi.com/equipment/')
.subscribe(response => {
// Is this the right approach in an RXJS world?
for(let record of response.data){
equipmentList.push ({
id: record.id,
equipment_required: record.equipment_required,
quote: record.quote,
created_time: record.created_time,
})
}
});
}
}
Вот данные, которые возвращает сервер:
{
"data": [
{
"id": "recNl4mf81TxaQstV",
"equipment_required": "Speakers + amp + dj equipment for music ",
"quote": 110,
"created_time": "2018-05-13T15:57:14.000Z"
},
{
"id": "recOzzRpZ0pS4GQYs",
"equipment_required": "Radio Mike",
"quote": 400,
"created_time": "2018-05-13T15:57:14.000Z"
},
{
"id": "recXhWqLKsdz3QE6t",
"equipment_required": "Fairy lights to cover area",
"quote": 400,
"created_time": "2018-05-13T15:59:06.000Z"
}
]
}
Интересующий меня раздел кода - это тот, который обрабатывает ответ сервера, метод, который обрабатывает subscribe
запрос. Я использую for(let record of response.data)
, но мне кажется, что я могу разделить данные с помощью наблюдаемого оператора, а затем работать с каждой записью.
Это правильно? Есть ли наблюдаемый метод, который разделит это единственное наблюдаемое событие на поток отдельных EquipmentRecord
событий, которые я мог бы затем обработать одно за другим? Это правильный способ думать о вещах?