169 похожих чатов

Привет всем, Есть данные, приходящие от бэка, типа {controller: 'l1',

//(or l2, l3, l4)
status: '#M,IN,011111'} //(or other ones I check in if statements)

Там несколько контроллеров, данные от каждого идут с разными статусами и сложить, точнее разложить мне эти данныыве нужно в объект по контроллерам:

{l1: {in1: 1, in2: 0, ...}, l2: {in1:0, ...}, l3: {in1:1, ...}, l3: {...}, l4: {...}}

Вот фрагмент компонента:

{
this.wsSubscription =
this.controlService.createObservableSocket(this.awsUrl)
.subscribe(
data => {
if(data.cotroller == 'l1') {
if(data.status.startsWith('#RD')){
this.status.l1.in1 = data.status[4];
this.status.l1.in2 = data.status[5];
this.status.l1.in3 = data.status[6];
this.status.l1.in4 = data.status[7];
this.status.l1.in5 = data.status[8];
this.status.l1.in6 = data.status[9];
console.log('Состояние RD L1 обновлено');}

if (data.status.startsWith('#M,EIN')) {
switch (data[7]) {
case 1 : {this.status.l1.in1 = data.status[9]; break}
case 2 : {this.status.l1.in2 = data.status[9]; break}
case 3 : {this.status.l1.in3 = data.status[9]; break}
case 4 : {this.status.l1.in4 = data.status[9]; break}
case 5 : {this.status.l1.in5 = data.status[9]; break}
case 6 : {this.status.l1.in6 = data.status[9]; break}
}
console.log('Состояние M EIN L1 обновлено');
}

if(data.status.startsWith('#M,IN')){
this.status.l1.in1 = data.status[6];
this.status.l1.in2 = data.status[7];
this.status.l1.in3 = data.status[8];
this.status.l1.in4 = data.status[9];
this.status.l1.in5 = data.status[10];
this.status.l1.in6 = data.status[11];
console.log('Сотсояние M IN L1 обновлено');}
}
},
err => console.log( 'err: ' + err),
() => console.log( 'The observable createObservableSocket is complete')
);

Получается весьма длинный код даже для одного компонента с несколькими условиями, а в перспективе и статусов будут десятки, и контроллеров будет много, есть способ компактнее это сделать?

1 ответов

10 просмотров

Причем здесь тайпскрипт?

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта