Nodejs Steam bot,承诺loo

时间:2017-01-13 17:20:14

标签: node.js promise steam

我做了一个小功能,给了我2个数字(价格)和承诺。 我通过使用for循环获得了数字,但是当我运行代码时,它只将1个价格打印到控制台。

功能:

function getPrices(offer){
var price = [];
return new Promise(function(resolve, reject){
    for(var i = 0; i < offer.length;i++){
        market.getItemPrice(730, offer[i].market_hash_name, function(err, data) {
            if(!err) {
                    try {
                            // JSON.parse() can throw an exception if not 
                            resolve(data.lowest_price.match(/\$(\d+\.\d+)/)[1]);
                    } catch(e) {
                            reject(e);
                    }
                    //price += data.lowest_price.match(/\$(\d+\.\d+)/)[1];
            }
        });
    }
});
}

获取值:

getPrices(offer.itemsToReceive).then(function(val){
    var a = "";
    a += val;
    console.log(a);
}).catch(function(err) {
    console.log(err);
});

它只打印出其中一个值: 0.05

1 个答案:

答案 0 :(得分:-1)

您正在通过循环解析第一次迭代的承诺。您需要检查您是否正在处理最后一项,然后才解决。