Hi, Danke für die Antwort. Ich habe mit promise.all() insofern ein verständnisproblem, dass ich nicht ganz verstehe, wie man durchiterieren soll
Ich sende zwei Arrays an den Server. titles und costs. In titles[0] steht zum Beispiel "Warmwasser" in costs[0] stehen die kosten vom Warmwasser.
nun möchte ich:
- von meine Haushostentypen-tabelle wissen welche type_id Warmwasser hat
- type_id und Kosten in meine Hauskostentabelle speichern
Das funktioniert, wenn ich einen expliziten Index, wie oben titles[0], costs[0] verwende.
Wenn ich das mit callback schreibe
dann sieht es etwa so aus:
db.execute(get_id_query, function(){
db.execute(insert_costs_query, function(){
//do something after insert
}
});
Mit Promises
get_house_cost_type_id(titles, 0).then(function(type){
insert_house_cost(type, building_id, year, costs, 0).then(function(result){
console.log(result);
});
});
Und mit Promise.all() so
Promise.all([get_house_cost_type_id(titles,0)]).then(function(type){
Promise.all([insert_house_cost(type, building_id,year, costs, 0)]).then(function(result){
});
});
Da habe ich zum einen das Problem, dass ich erst im Callback die Andere Funktion aufrufen kann, weil ich als parameter die id brauche. zum anderen verstehe ich nicht, wie ich das eben für alle values in titles und costs durchführen kann.
Habe auch überlegt sowas zu machen, aber damit ging es leider auch nicht:
var i= 0;
while(i < titles.length){
Promise.all([get_house_cost_type_id(titles,i)]).then(function(type){
Promise.all([insert_house_cost(type, building_id,year, costs, i)]).then(function(result){
i++;
});
});
}
Vielleicht stell ich mich gerade aber auch doof an. Wie genau soll das mit all gehen.
Beste Grüße uri