【问题标题】:Nodejs Steam bot, Promise for looNodejs Steamboat,Promise for 循环
【发布时间】:2017-01-13 17:20:13
【问题描述】:

我做了一个小函数,承诺返回 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

【问题讨论】:

    标签: node.js promise steam


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 2019-03-25
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多