Паршу сайт, есть функция. Как мне вернуть из этой функции значение? Как я понимаю нужно сделать после each
then
, который будет возвращать resolve
, но я получал ошибку TypeError: $(...).each(...).then is not a function
, когда пытался так сделать
function parse(body) {
return new Promise(function(resolve, reject) {
var $ = cheerio.load(body)
$('span').each(function(i, elem) {
axios.get(url)
.then(function(response) {
// действия с полученным html
})
.then(function(mark) {
// еще действия
})
}).then(function(data)
return resolve(data)
})
})
}
У вас сейчас какая ситуация: вы проходите по всем элементам, запускаете какой-то сетевой запрос и все.
Во первых, вы ничего никуда не возвращаете, во вторых $.each
вернет объект, где нет метода then
.
Jquery (cheerio)
давно не пользовался, поэтому будет смешанный ответ.
function parse(body) {
const $ = cheerio.load(body);
// В promises массив ожиданий
const promises = $('span').map((i, elem) => {
return axios.get(url)
.then(function(response) {
// действия с полученным html
})
.then(function(mark) {
// еще действия
// тут надо что-то будет вернуть
});
});
// Дождется, когда все ожидания выполнятся
return Promise.all(promises);
}
Promise.all
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
При оценке $('phone-details') в консоли элемент выводится, $ так же в консоли определен, но при клике на строку таблицы появляется ошибка ReferenceError: $ is not defined
Не понимаю поведение метода concat в конструкторах на прототипе Array; это БАГ или что ( ?
Почему при клике на button, textContent у $alertApp появляется и тут же исчезает?