asynchrone synchrone attente fin de boucle
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:
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() |