调用函数里面的循环javascript

时间:2018-04-27 15:04:35

标签: javascript function loops

好的,这是我的循环:

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);
            }
        }
}

现在,只要一个===红色的水果出现。保存水果不是自动执行的。但是在所有其他事情发生后,为什么会这样?

有任何解决方法吗?

1 个答案:

答案 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)
)