@odd-look

Может ли callback возвращать несколько параметров?

Пишу вот парсер, это функция считающая количество страниц
var request = require('request');
var cheerio = require('cheerio');

var counter = function (link, i, callback) {
    request(link + i, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            var $ = cheerio.load(body);
            if ($('.b-products__list .main-bigger3').text().trim() == 'К сожалению, в данной категории нет товаров') {
                callback(link ,--i);
            }
            else {
                counter(link, ++i, callback);
            }
        }
    })
};

module.exports = counter;


К сожалению не работает,
Error: Can't set headers after they are sent.


Но если возвращать только i, то все нормально.
Есть ли способ вернуть еще и линк?
P.S. callback использовать обязательно.
  • Вопрос задан
  • 2416 просмотров
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
В callback можно передавать сколько угодно любых параметров, но принято первый параметр делать error. Ошибка находится в том коде из которого Вы вызываете этот модуль. Можно только догадываться, но скорее всего, код верхнего уровня как-то проверяет первый параметр callback, попробуйте передавать первым параметром null или давайте код в студию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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