Здесь для класса Service мне нравится создавать итератор по умолчанию. Мне нужно сделать сервис повторяющимся, но я не могу думать дальше. Я считаю, что мне нужно использовать * Symbol.iterator, но не знаю, как использовать
class Service {
constructor() {
this.link = [];
}
}
var service = new Service();
service.link.push(1);
service.link.push(2);
service.link.push(3);
for (let x of service) {
console.info(x);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Да просто определите *[Symbol.iterator]() { по классу
class Service {
constructor() {
this.link = [];
}
*[Symbol.iterator]() {
for (let i = 0; i < this.link.length; i++)
yield this.link[i];
}
}
var service = new Service();
service.link.push(1);
service.link.push(2);
service.link.push(3);
for (const x of service) {
console.info(x);
}