好的,这是我的循环:
if (list.length) {
for (let i = 0; i < list.length; i++) {
let fruit = list[i].attributes;
if (fruit.color === 'red') {
id = fruit.id;
fruit.path = base.fruit_directory + "/" + id;
saveFruit(id);
}
}
}
现在,只要一个===红色的水果出现。保存水果不是自动执行的。但是在所有其他事情发生后,为什么会这样?
有任何解决方法吗?
答案 0 :(得分:0)
假设saveFruit返回一个承诺(如果没有,请发布该功能):
Promise.all(
list.map(item=>item.attributes)//map list items to fruit
.filter(fruit=>fruit.color==="red")//only red fruit
.map(f=>saveFruit(base.fruit_directory +"/"+f.id))//map fruit to promise resolving in response
).then(
responses=>console.log("got responses:",responses)
)