JSFiddle - React, Tailwind, and code Playground
JavaScript
var isbns = ["9788566250299", "9788555191459", "9788555191039"];
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
};
function iterator(numbers, done) {
var ISBNdata = [];
var calls = numbers.length;
isbns.forEach(function(isbn, i) {
fetch(isbn, i, function(data, index) {
calls--;
ISBNdata[index] = data;
if (calls == 0) done(ISBNdata)
});
});
}
function fetch(nr, index, cb) {
$.ajax("/website/consulta/cadastro/isbn/9788566250299").done(function(raw) {
var data = process(raw);
console.log('Recebido index', index);
cb(data, index);
});
}
function process(raw) {
var body = raw.match(/<body>([\s\S]+)<\/body>/);
if (!body) return;
var proxy = document.createElement('div');
proxy.innerHTML = body[1];
var elements = proxy.querySelector('.conteudo').getElementsByTagName('div');
var data = [5, 6, 7, 8, 10, 12].map(function(i) {
return elements[i].childNodes[3].nodeValue;
});
data.push(elements[12].childNodes[5].nodeValue);
return data.map(trim);
}
iterator(isbns, function(data) {
console.log('---------------')
console.log(JSON.stringify(data));
});