Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Esperar por resposta

$
0
0
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):
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;
                }
           }

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);
}
});
}

Estive a verificar e a função consegue os preços no entanto não os mete nos items corretos.

Alguma ideia?
Melhores cumprimentos.

Viewing all articles
Browse latest Browse all 14700