@truexizt1
Back-end разработчик

Почему в результате выводится только 1 ссылка, а не все?

Есть код:
io.sockets.on('connection', function(socket) {
  var group = 'fnatic';
  var url = 'http://steamcommunity.com/groups/' + group + '#members';
  request(url, function(err, resp, body){
    $ = cheerio.load(body);
    links = $('a');
    $(links).each(function(i, link){
      // console.log($(link).attr('href'));
      var users = $(link).attr('href');
      socket.emit('hatler', users);
    });
  });

});


Если вывести в консоль, то выведутся все ссылки, если через socket.io передать клиенту, то выведется самая последняя ссылка.

Код обработки результата в клиентской части:

var socket = io.connect('http://localhost:3000');
      socket.on('hatler', function(users) {
        $('.result').html(users);
      });
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Вы отправляете каждого юзера отдельным сообщением, собирайте их в массив и отправляйте этот массив после .each()

UPD
io.sockets.on('connection', function(socket) {
  var group = 'fnatic';
  var url = 'http://steamcommunity.com/groups/' + group + '#members';
  request(url, function(err, resp, body){
    $ = cheerio.load(body);
    links = $('a');
    var users = [];
    $(links).each(function(i, link){
      // console.log($(link).attr('href'));
      users.push($(link).attr('href'));
    });
    socket.emit('hatler', users);
  });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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