我想在数组上做一些思考:在添加新的参数检查后进行skinydobazy。
skinydobazy.forEach(function(klucz,index) {
getPrice(data.prices[0]).then(function(results) {
var price = results.skinData.wep.median_price;
if(price > 1)
klucz.check = 1;
console.log('HERE');
});
}); // end foreach
console.log(skinydobazy); //do sth after foreach
(在foreach循环之后)我想与更新的skinydobazy做一些思考。但我有一个问题。因为首先显示skinydobazy,但应该“HERE”和之后应该显示skinydobazy。
有解决方案吗? 谢谢
答案 0 :(得分:1)
使用map
代替forEach
,您可以生成一个Promises数组。然后,您可以使用Promise.all
订阅该数组中所有Promise的完成。
Promise.all(skinydobazy.map(function(klucz, index) {
// Return the Promise that resolves on .then(fn)
return getPrice(data.prices[0]).then(function(results) {
var price = results.skinData.wep.median_price;
if (price > 1)
klucz.check = 1;
console.log('HERE');
// Resolve Promise with results
return results;
});
}).then(function(allResults) {
// allResults will be an array of results
console.log(skinydobazy);
});