我做了一个小功能,给了我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
答案 0 :(得分:-1)
您正在通过循环解析第一次迭代的承诺。您需要检查您是否正在处理最后一项,然后才解决。