Bonjour à tous,
je m'arrache le peu de cheveux qu'il me reste...
je veux faire un truc tout bête, qui serrais fini en synchrone depuis longtemps mais en asynchrone j'ai du rater un truc.

J'ai fait un exemple simple mais qui reflète déjà bien mon problème.

j'ai une boucle avec un appel externe et à la fin de cette boucle je veux renvoyer le tableau.
Comme vous pouvez le voir sur ce code tout est renvoyé avant que la boucle finisse

Help
j'ai surement du rater un gros truc mais ça alourdi considérablement bien le code le asynchrone, dommage qu'on ne puisse pas activer ou desactiver cette fonctionnalité...

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
32
33
34
35
36
37
38
39
40
41
42
43
44
 
const Request = require("request");
const pers = ["pascal", "laurent", "marion", "melanie"]
const pwd = "https://www.passwordrandom.com/query?command=guid&format=json&count=1"
const tab = { "name": "", "pass": "" }
var tokenTab = []
 
function newpass(pe) {
    return new Promise(function (resolve, reject) {
        Request(pwd, function (error, response, body) {
            if (error) {
                reject(error)
            }
            var pw = JSON.parse(body).char[0]
            resolve(pw)
        })
    })
}
 
async function start() {
    console.log("start")
    await step1();
    console.log(tokenTab)
    console.log("end")
 
}
 
function step1() {
 
    pers.forEach(el => {
        //console.log(el)
        newpass(el).then(z => {
            //console.log(z)
            var tt = tab
            tt.name = el
            tt.pass = z
            tokenTab.push(tt)
            console.log(tt)
        })
    })
 
}
 
start()