При этом на клиенте то команда получения сообщения от сервера всего 1 это socket.onmessage в итоге у меня ответ от сервера пихается в одну переменную и список подключений и сообщения, а как все это разделить?
socket.onmessage = message => {
const obj = JSON.parse(message);
switch (obj.type) {
case MessateTypes.Online: return onOnline(message.payload);
case MessateTypes.Messages: return onMessages(message.payload);
default: throw new Error('unrecognized message');
}
}
white-space: pre;
/**
* @template {string} T
* @param {T} encryptOptions
*/
function somefunction(encryptOptions)
function somefunction<T extends string>(encryptOptions: T)
event.target.files
имеет тип FileList и у него конечно нет forEach, это не массив. Массив можно сделать через Array.fromlet todoList = {
todoItems: [1, 2, 3, 4],
[Symbol.iterator] () {
console.log('начинаем перебирать массив по кругу!')
let i = -1;
return {
next: () => {
i += 1;
if (i > 10) {
return {
done: true,
value: null,
}
}
return {
done: false,
value: this.todoItems[i % this.todoItems.length],
}
}
};
}
};
for (let item of todoList) {
console.log(item);
}
let iterableTodoList = todoList[Symbol.iterator];
console.log(
'А это символ-итератор в переменной, применим его к другому объекту', iterableTodoList
);
let todoList2 = {
todoItems: ['a', 'b', 'c'],
[Symbol.iterator]: iterableTodoList,
};
for (let item of todoList2) {
console.log(item);
}
<mat-card [formGroupName]="body">
Cannot find control with unspecified name attribute
в консоли не смутили чтоли?