Ergebnis 1 bis 2 von 2
Thema: Asynchrone Werteübergabe
-
09-10-2020, 22:23 #1
Grünschnabel
- registriert
- 09-10-2020
- Beiträge
- 1
Asynchrone Werteübergabe
Hallo,
ich bin neu in der Javascript Welt und werde verrückt mit der Asynchronität.
Wäre super wenn ihr mir helfen könntet.
Der Problem Code:
Code:db_actions.prototype.get_changes = function (params) { let row_count = 0; let param = []; return new Promise((resolve, reject) => { let res_str = `{"daten":[`; let q = `select * from client_import where user_id = "${params.user}" and client_id <> "${params.cid}" and tab = "${params.table}"`; this.db.serialize(()=>{ this.db.each(q, [], (err, row) => { if (err !== null) { console.log("Error ", err); return ""; } param.push(params); param[param.length - 1].imp_id = row.cimp_id; param[param.length - 1].keyfield1 = row.keyfield1; param[param.length - 1].keyfield2 = row.keyfield2; param[param.length - 1].value1 = row.value1; param[param.length - 1].value2 = row.value2; param[param.length - 1].action = row.action; param[param.length - 1].aedatfield = row.aedatfield; //this.db.serialize(()=>{ this.set_export(param[param.length - 1]).then((r)=>{ //param.exp_id = r; console.log("0value:", r.value1); console.log("0expID: ", r.exp_id); //res_str = res_str + this.table_select(param); this.table_select(r).then((r) =>{ res_str = res_str + r; row_count = row_count - 1; if (row_count === 0){ res_str = res_str.substr(0, res_str.length - 1); res_str = res_str + "]}"; resolve(res_str); } }) }); //}) }, (err, count) => { row_count = count; /* res_str = res_str.substr(0, res_str.length - 1); res_str = res_str + "]}"; resolve(res_str);*/ }) }) }) } db_actions.prototype.set_export = function(param){ return new Promise((resolve, reject) => { this.db.serialize(()=>{ let q = `select * from client_export where user_id = "${param.user}" and cid = "${param.cid}" and cimp_id = "${param.imp_id}" and status <> "closed"`; console.log("Q: ", q); console.log("In P value:", param.value1); console.log("In P expID: ", param.exp_id); this.db.all(q, (err, rows_ce) => { if (err !== null) { console.log("Error ", err); return; } if (rows_ce.length === 0) { param.exp_id = "0"; } else { param.exp_id = rows_ce[0].cexp_id.toString(); } console.log("Param: ", param); this.write_export(param); resolve(param); }) }) }) }
Ich habe ein Bind versucht und ein Object.create nichts hilft, ich habe irgendwie ein Verständnisproblem.
Könnt ihr mir da helfen?
Besten Dank und Gruß
ReneGeändert von mikdoe (10-10-2020 um 09:10 Uhr) Grund: Code Tags
-
18-10-2020, 10:56 #2
AW: Asynchrone Werteübergabe
Du hast mehr ein Logikproblem als eines mit der Asynchronität. Der
param
Parameter beiset_export
ist immer das gleiche Objekt wieparams
vonget_export
. Du musst in der "Schliefe" für jede Zeile ein neues Objekt erstellen - schau' dir dasparam
-Array inset_export
am Ende an - da sind überall die gleichen Daten drin.
Ähnliche Themen
-
Verständnisproblem asynchrone Aufrufe
Von PeterM1 im Forum JavaScriptAntworten: 1Letzter Beitrag: 23-09-2020, 11:27 -
Asynchrone Datenbank und Event pagebeforeshow
Von tomtom50 im Forum JavaScriptAntworten: 5Letzter Beitrag: 26-07-2011, 14:14 -
Asynchrone Anfrage an Server mittels JSP
Von xplox im Forum Serverseitige ProgrammierungAntworten: 3Letzter Beitrag: 16-12-2008, 11:47 -
Werteübergabe
Von Carre im Forum JavaScriptAntworten: 4Letzter Beitrag: 16-09-2007, 11:47 -
Werteübergabe
Von Redpadz im Forum JavaScriptAntworten: 1Letzter Beitrag: 05-04-2001, 17:49
Lesezeichen