Bom dia,
Estou a desenvolver um código em javascript para funcionar em nodeJS.
O que necessito é que no ciclo for que abaixo apresento espere pela resposta e só depois passe ao outro item.
Código (Javascript):
O que se passa aparentemente é que ele não espera pela resposta do anterior e passa logo para o seguinte.
A função getItemsPrice é a seguinte:
Código (Javascript):
Estive a verificar e a função consegue os preços no entanto não os mete nos items corretos.
Alguma ideia?
Melhores cumprimentos.
Estou a desenvolver um código em javascript para funcionar em nodeJS.
O que necessito é que no ciclo for que abaixo apresento espere pela resposta e só depois passe ao outro item.
Código (Javascript):
for (var i = 0; i < num; i++) {
getItemsPrice(items_to_check[i].name, function(error, data) {
if (error) { console.log("Error: " + error); problem = "PriceItem"; }
if (data > -1) {
items_to_check[i].price = data;
}
});
if (problem != false) {
break;
}
}
getItemsPrice(items_to_check[i].name, function(error, data) {
if (error) { console.log("Error: " + error); problem = "PriceItem"; }
if (data > -1) {
items_to_check[i].price = data;
}
});
if (problem != false) {
break;
}
}
O que se passa aparentemente é que ele não espera pela resposta do anterior e passa logo para o seguinte.
A função getItemsPrice é a seguinte:
Código (Javascript):
function getItemsPrice(item, callback) {
var url = 'http://localhost/system/preco.php?item=' + item;
request({
url: url,
json: true
}, function(error, response, body){
console.log("WebAPI: " + body);
if(!error && response.statusCode === 200){
if (body != "notfound")
callback(null, body);
else
callback(null, "-1");
} else if (error) {
getItemsPrice(item, callback);
}
});
}
var url = 'http://localhost/system/preco.php?item=' + item;
request({
url: url,
json: true
}, function(error, response, body){
console.log("WebAPI: " + body);
if(!error && response.statusCode === 200){
if (body != "notfound")
callback(null, body);
else
callback(null, "-1");
} else if (error) {
getItemsPrice(item, callback);
}
});
}
Estive a verificar e a função consegue os preços no entanto não os mete nos items corretos.
Alguma ideia?
Melhores cumprimentos.