Bonjour à vous tous,
Débutant en nodeJs, j'essayes de comprendre les Promises...
Pourriez vous m'aider sur cette fonction : Les variables sont valides ("value[0]", "value[3]...[i]")
Comme vous pouvez le voir j'ai place des "console.log" pour savoir ou j'en étais...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 static RechCritUserById(value) { return new Promise((resolve, reject) => { for (var i = 0; i < value[3].length; i++) { let ParId = value[3][i]; let UsrId = value[0]; console.log(' A : ', ParId) var query_str = 'SELECT * FROM usr_par WHERE usr_id = ? AND par_id = ?'; var query_var = [UsrId, ParId]; connection.query(query_str, query_var, function (err, rows) { if (err) { return reject(err); } else { if (rows.length != 0) { console.log(' B ') value.push(rows); } else { console.log(' C ') var trans = { up_id: '', usr_id: UsrId, par_id: ParId, up_val: 0 } value.push(trans); } } }); } console.log(' D ') resolve(value); }); }
Et comme résultat j'ai :
Le "D" qui est le "resolve" arrive trop tôt et donc "value" n'est pas incrémenté des nouvelles valeurs.A
A
A
D
B
B
C
Comment pourrais-je faire ?
Merci de votre aise et temps.
Acqua2b
Partager