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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
function modif() {
    supalim();
    creeralim();
}
voici le contenu de la première fonction:
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');
        });
    });
}
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
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);
        });
    });    
}
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.

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é.