Если предположить, что 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)
)