salut à tous.
pour une application windows metro js+html5 pour windows 8.1 je fais appel à cette fonction qui elle même fait appel à 2 fonctions:
voici le contenu de la première fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function modif() { supalim(); creeralim(); }
et de la deuxième:
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 function supalim() { var id = document.getElementById("alim").value; var dbPath = Windows.Storage.ApplicationData.current.localFolder.path + '\\aliments.sqlite'; SQLite3JS.openAsync(dbPath) .then(function (db) { return db.runAsync('DELETE FROM aliments WHERE ID = ?', [id]) .then(function () { return db.runAsync('DELETE FROM conversion WHERE ID_aliments = ?', [id]) }) .then(function () { db.close(); console.log('après sup'); }); }); }
ces deux fonctions fonctionnent très bien chacune dans son coin mais quand j'appel la fonction modif, parfois tout fonctionne mais parfois seul l'une ou l'autre des fonction est exécutée ou aucune.
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 function creeralim() { var newid; //on récupère les valeurs des différents champs var nom = document.getElementById("nom").value; var cal = document.getElementById("Calories").value; var ig = document.getElementById("IG").value; var prot = document.getElementById("Proteines").value; var glu = document.getElementById("Glucides").value; var lip = document.getElementById("Lipides").value; var fib = document.getElementById("Fibres").value; var conv = document.getElementById("convers").value; console.log('1 : la val conv vaut : ' + conv); var dbPath = Windows.Storage.ApplicationData.current.localFolder.path + '\\aliments.sqlite'; SQLite3JS.openAsync(dbPath) .then(function (db) { return db.runAsync('INSERT INTO aliments (Nom, Calories, IG, Proteines, Glucides, Lipides, Fibres) VALUES (?, ?, ?, ?, ?, ?, ?)', [nom, cal, ig, prot, glu, lip, fib]) .then(function () { newid = db.lastInsertRowId; console.log('2 avant insert avec conv = ' + conv + 'et newid = ' + newid); return db.runAsync('INSERT INTO conversion (gr, cl, ID_aliments) VALUES (?, ?, ?)', [100, conv, newid]) }) .then(function () { db.close(); console.log('3 avant getalim avec newid = ' + newid); getalim(newid); }); }); }
J'ai déjà essayé de mettre un sleep de 10sec entre les deux appels après mettre rendu compte que quand je débug step by step tout fonctionne correctement mais cela n'a rien changé.
Partager